1

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

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

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

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

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

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

但它不包括资源文件夹到应用程序文件夹。

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

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

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

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

4

3 回答 3

4

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

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

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

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

于 2013-01-29T11:26:50.933 回答
0

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

于 2013-01-29T11:29:42.233 回答
0

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

于 2013-01-30T14:27:28.250 回答