2016-08-17 81 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

相關問題