9

我發誓越微軟「發展」Visual Studio,整個過程變得越無知。BadImageFormatException x64問題

我有一個Windows服務,裏面有3個類庫。我進入了每個類庫的屬性,並將平臺目標設置爲x64。我對Windows服務以及我添加的用於驗證一切的測試控制檯項目做了同樣的事情。

我可以運行沒有問題,但愚蠢的安裝程序不斷轟炸出來,告訴我,我有一個不好的形象在我的Windows 2008 R2的x64服務器上的控制檯應用程序。我確實確保我已將安裝程序的目標平臺設置爲x64。

我不知道的想法是這樣愚蠢的事情會被轟炸了,真的希望任何見解。我參考了其他的DLL,這些可能是x86,但我認爲如果主庫設置正確,事情會起作用...

+4

您可能需要看你用它來描述這個問題的話,因爲它是完全有可能是你的一部分,而不是任何是微軟的錯錯誤。 – 2012-04-23 05:13:16

+1

聽起來像某人有架構不匹配... – 2012-04-23 05:14:48

+0

自從90年代初我一直在使用MS技術以來,我認爲我有資格證明其總體有用性的迅速下降。 – 2012-04-23 05:23:19

回答

20

我終於明白了這一點 - 它與架構,引用或任何其他廢話和一切與安裝程序本身。正如本文所解釋的 - http://blogs.msdn.com/b/heaths/archive/2006/02/01/64-bit-managed-custom-actions-with-visual-studio.aspx - 默認情況下,Visual Studio安裝程序使用32位DLL,這是導致失敗的原因。

爲了克服這個問題,只需按照下列步驟操作:

  1. 請確保您進入屬性=>生成標籤爲每個項目,並設置目標平臺到x64
  2. 點擊名稱您的安裝項目,然後點擊屬性,並確保目標平臺是64位
  3. 構建解決方案 - 如果解不編譯,右擊卸載項目,然後加載,項目對於其引用失敗的項目。
  4. 轉到http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=3138,下載並安裝7.0安裝SDK
  5. 進入到C:\ Program Files文件(x86)的\微軟的SDK \的Windows \ v7.0A \ Bin文件夾,並通過對逆戟鯨雙擊安裝奧卡.MSI文件
  6. 運行的Orca,然後打開你的項目的MSI文件夾
  7. 選擇二進制表
  8. 雙擊備案選擇
  9. 細胞[二進制數據] InstallUtil
  10. 確保「讀取從文件名二進制」
  11. 點擊瀏覽對接在瀏覽到C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319
  12. 選擇InstallUtilLib.dll
  13. 單擊打開按鈕,然後確定按鈕

這就是它 - 保存您的MSI文件在Orca中,然後部署它 - x64安裝應該沒有任何進一步的問題。

+6

順便說一句,感謝您對MS寶寶的反對票 - 這是一個合法的問題以及其他一系列MS問題,而您無法忍受可信的批評這一事實說明了您的大量情況。 – 2012-07-20 18:10:47

+2

謝謝肯,最後是一個工作解決方案。我有個問題。作爲後期製作活動能夠自動完成嗎?手動爲數十個onf安裝程序執行每個發行版都耗時... – KenGey 2014-11-17 10:24:10

+0

[Orca 5.0.7693.0(2.1MB)](http://goo.gl/EOCZi)沒有來自[Orca 5 - msi編輯工具的整個SDK Windows 7](http://myserverissick.com/2011/04/orca-5-msi-editing-tool/) – 2014-11-19 09:34:20