32位winform应用程序不能在64位操作系统上运行

时间:2013-03-13 17:34:59

标签: c# winforms

我有两台笔记本电脑。

1)BuildLaptop->我编写应用程序的笔记本电脑。 Windows 7旗舰版32位,Office 2007 for database

2)TestLaptop->测试应用程序。 Windows 7旗舰版64位,Office 2007.

我的应用程序包含几个构建为AnyCPU的dll文件,该应用程序也构建为AnyCPU。

当我尝试在TestLaptop上测试我的应用程序时,它给了我一个错误:

  

您的计算机上未注册Microsoft.ACE.OleDb.12.0提供程序。

所以我从TestLapTop卸载了Office并在BuildLapTop上安装了Office。

同样的错误。然后我尝试编译所有的dll以及我的应用程序到x64。该应用程序无法启动。然后我尝试只将应用程序编译为x64并将dll编译为anyCPU。错误再次发生。

那么请教我如何让我的应用程序在TestLapTop上运行?

2 个答案:

答案 0 :(得分:5)

如果项目使用任何32位非托管资源(DLL等),则需要将任何项目编译为/platform:x86

enter image description here

答案 1 :(得分:2)

根据您的评论,我不确定您是否遇到此问题。如果您安装了任何Microsoft Office程序:

  • Excel中
  • 简报

如果它们是 32位版本,那么您无法安装 64位访问数据库引擎它将为您提供以下例外:

Exception

这将强制您将 32位版本安装到 64位计算机上。您可能还需要通过管理工具对 ODBC数据源中的数据库进行一些其他配置。

ODBC Data Source

希望至少澄清您在评论中提到的错误。至于编译,Sixlettervariables有一个解决方案。

希望这会有所帮助。