我正在使用Visual Studio 2008在Windows 7 64位中開發。我有一個使用ILMerge合併到單個DLL中的類庫集合。當我嘗試使用此合併DLL,但是,我得到BadImageFormatException和.NET在Windows 7中ILMerged DLL 64
[BadImageFormatException:未能加載文件或程序集「MyMergedDll」或它的一個依賴。試圖加載程序格式不正確。]
我一直在尋找周圍幫助,這和它看起來像我需要設置生成屬性在每個項目中MyMergedDll目標86,所以我做到了。我還在Web服務中設置了所有非MSTest項目,其中我將MyMergedDll引用爲x86目標。但是,我仍然收到這個錯誤。
如果this blog entry是可以相信的,我能得到這個錯誤因爲這樣做的結果是:
public class SpecificClass: BaseClass: where T : class { }
也就是說,具有一個通用類約束。雖然這篇博客是從2007年開始的,但我不知道這是否仍然適用。我希望從StackOverflow獲得一些輸入,以瞭解你們認爲問題出在我追蹤我的項目中的每個泛型類以檢查約束之前。
重要的是,MyMergedDll是強名字簽名的。我試圖在控制檯應用程序和Web服務中使用MyMergedDll。我不知道是否每次重建Web服務時IIS是否更新都可能使事情變得複雜。使用控制檯應用程序時,我似乎在構建發行模式時獲得BadImageFormatException
。
您能否澄清一些觀點: 1.運行ILMerge時或執行應用程序時是否出現錯誤? – 2010-07-19 16:36:12
單個項目DLL與ILMerge很好地融合在一起。控制檯應用程序和使用合併DLL的Web服務可以正常工作。當我或者a)運行我的控制檯應用程序或b)訪問運行Web服務的Web服務器上的.asmx文件時,出現錯誤。 – 2010-07-19 16:44:49