2016-08-17 46 views
0

我遇到VS2015的问题。无法在VS2015中启动32位DLL

我想创建一个通过.csv文件读取的DLL,为此,我将使用Jet ADO Provider,但它只能在32位上运行。

因此,我想在我的64位Windows 7

我创建了一个类库项目执行32位的DLL,用空用户控件。没有外部参考,没有任何代码。

如果我运行“任何CPU”或“x64”,一切工作正常。 如果我设定的目标CPU为“86”,它不会劳克,错误

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位,我还没有找到在哪里改变这一点。

你能帮我解决这个问题吗?

问候, 马克西姆

+0

它是一个图书馆或应用程序?如果它是一个库,那么你肯定会有另一个项目,这是一个依赖它的应用程序。这个项目是否也设置为32位? – slawekwin

+0

这是一个类库项目,没有别的。 – Maxime

+0

你无法执行一个库,你如何运行它?来自控制台的一行表明您正在使用某种名为'UserControlTestContainer.exe'的外部应用程序。它是32bit吗? – slawekwin

回答

1

由于对这个问题的评论,我设法得到它的工作:

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

我猜想这是VS2015的一个不错的新功能。请仔细检查您是否可以将此“容器”特别项目配置为以x86运行 – slawekwin

相关问题