我已經構建並將我的服務從vs2010安裝到64位機器上。服務64位機器上的32位dll
當我的服務引用32位dll(spssio32.dll是精確的)時出現問題 - 我在事件查看器中遇到錯誤:「System.BadImageFormatException:嘗試加載帶有不正確的程序的程序格式。(來自HRESULT的例外:0x8007000B)「
任何關於此事的幫助將不勝感激。
Regards, Byron Cobb。
我已經構建並將我的服務從vs2010安裝到64位機器上。服務64位機器上的32位dll
當我的服務引用32位dll(spssio32.dll是精確的)時出現問題 - 我在事件查看器中遇到錯誤:「System.BadImageFormatException:嘗試加載帶有不正確的程序的程序格式。(來自HRESULT的例外:0x8007000B)「
任何關於此事的幫助將不勝感激。
Regards, Byron Cobb。
您的服務代碼是用.NET語言編寫的嗎?如果是這樣,您需要將其標記爲定位x86
而不是Any CPU
(通過項目屬性/構建/平臺目標)。
(默認情況下,.NET代碼靶向Any CPU
,這意味着在64位機器上,將編譯成64位機器碼。由於這樣的64位的代碼不能加載32位的DLL,這會導致故障等在代碼依賴於32位DLL的情況下,即使在64位機器上也需要始終編譯爲32位機器代碼,因此將目標平臺設置爲x86
。)
您可以使用替代
http://www.dnjonline.com/article.aspx?id=jun07_access3264
一個COM另一個變體是產卵一個外部的32位服務器進程,併爲它和你的64位應用程序添加一個.NET遠程接口,所以你可以使用.NET遠程進行進程間通信。
我正在使用Visual Studio 2010和我的構建模式在發佈設置爲x86。 – Bob 2010-09-08 11:15:43
啊 - 我的解決方案被設置爲可編譯爲任何CPU,即使我在x86中使用它的解決方案屬性。它現在可以工作 - 謝謝,你是一個拯救生命的人! – Bob 2010-09-08 11:32:33