c#.net 32​​位应用程序无法在64位操作系统上运行

时间:2013-01-29 11:17:27

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

我是.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 framework 4.0,我在应用程序中使用了.net framwork 3.5。

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

然后我看到没有资源文件夹,所以我只是将资源文件夹复制到安装它的应用程序。然后应用程序工作正常。

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

3 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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