【问题标题】:c#.net 32 bit application Not working on 64 bit OSc#.net 32​​ 位应用程序不适用于 64 位操作系统
【发布时间】:2013-01-29 11:17:27
【问题描述】:

我是 .NET 应用程序的新手。

我已经使用 Visual Studio 2008 在 32 位操作系统上开发了该应用程序。

该应用程序需要 Microsoft.Interop 服务和 PDF 服务才能打开 PDF 文件和 MS Office 文件。

它还需要 SQL Express 来进行数据库操作。

该应用程序在 32 位操作系统上运行良好。

然后我为 64 位操作系统创建了设置,我在 Visual 中添加了一个带有向导的新设置项目 Studio 2010 并选择主要输出和本地化资源。

但它没有将 Resources 文件夹包含到 Application 文件夹中。

我将目标机器设置为 64x 并构建项目,还在构建之前为项目提供先决条件,即 Windows Installer 3.1 和 .net 框架 4.0,我在应用程序中使用了 .net 框架 3.5。

然后我运行了安装程序,它成功执行了。 但是当我尝试运行该应用程序时,它给出了消息“应用程序已停止工作。从网络上寻找解决方案..”然后它就关闭了。

然后我看到没有资源文件夹,所以我只是将资源文件夹复制到安装它的应用程序中。然后应用程序运行良好。

所以我再次创建了设置,但这次我还将资源文件夹提供给应用程序文件夹。构建了安装程序并尝试运行应用程序,但在“应用程序已停止工作...”之前向我提示了相同的消息,因此我查找了资源文件夹和那里的所有必需文件。

【问题讨论】:

  • 检查资源的构建操作在 x64 模式下是否不同,以及您是否正在部署到正确的目标路径。

标签: c# .net 64-bit installation setup-project


【解决方案1】:

在您的情况下,创建单独的 64 位版本毫无意义。

您依赖于 32 位组件;因此,所有1您的程序集必须编译到 x86 目标平台并使用 32 位 MSI 安装。

如果您收到“应用程序已停止工作...”错误,这表明发生了您的进程尚未处理的异常。您可以获得堆栈跟踪,例如来自事件日志。

1其实至少入口程序集必须有x86目标平台,其他所有程序集必须有x86或AnyCPU目标平台。

【讨论】:

    【解决方案2】:

    检查您是否已在项目中将平台目标更改为 x64 或 AnyCPU -> 构建属性

    【讨论】:

    • 这毫无意义。 x64 或 AnyCPU 的平台目标实际上可能是这里的问题。
    【解决方案3】:

    嘿朋友们,感谢您回答我的问题。最后做了很多事情我发现它在创建设置时将sql数据库转换为2008。我在客户端机器上设置了 sql express 2005。然后我将 sql server 2005 更改为 sql express 2008 并运行设置。然后我发现第一次 exe 需要所有权限才能转换所以我尝试了设置以管理员身份运行并宾果游戏设置适用于 2 台不同的电脑。 唯一需要的是第一次我需要以管理员身份运行应用程序。 谢谢你的帮助我

    【讨论】:

      猜你喜欢
      • 2012-09-01
      • 2017-07-17
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 2014-12-28
      • 2013-10-31
      • 2012-11-17
      相关资源
      最近更新 更多