无法在VS2015中启动32位DLL

时间:2016-08-17 12:03:22

标签: visual-studio visual-studio-2015

我对VS2015有疑问。

我想创建一个读取.csv文件的DLL,为此,我将使用Jet ADO Provider,但它只能以32位工作。

因此,我试图在我的64位Windows 7上执行32位DLL。

我创建了一个类库项目,其中包含一个空的UserControl。没有外部参考,没有任何代码。

如果我在“任何CPU”或“x64”中运行,一切正常。 如果我将目标CPU设置为“x86”,则不会出现错误

An unhandled exception of type 'System.BadImageFormatException' occurred in mscorlib.dll

在控制台中,我可以阅读:

'UserControlTestContainer.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

似乎表明mscorlib.dll是从64位文件夹加载的,虽然我是32位的,但我还没有找到更改它的位置。

你可以帮我解决这个问题吗?

此致 马克西姆

1 个答案:

答案 0 :(得分:1)

感谢对这个问题的评论,我设法让它发挥作用:

  • 在VS2015中,可以运行没有.exe项目的类库。
  • 在没有.exe项目的情况下运行类库时,会创建一个ad-hoc项目,其标准配置为:“UserControlTestContainer.exe”。在64位系统上,它作为64位应用程序执行。
  • 为了执行32位DLL,需要一个用户自定义的exe项目,设置为32位。