我的Windows窗體應用程序(我稱之爲MyApplication.exe
)比我的dev的機器之外的機器上,一個對話框彈出說:如何當我嘗試打開診斷「System.TypeLoadException」錯誤
MyApplication
已停止工作
Windows可以解決網上查詢到的問題
- 檢查在線的解決方案,並關閉程序
- 關閉程序
詳細
問題簽名:
Problem Event Name: CLR20r3
Problem Signature 01: myapplication
Problem Signature 02: 1.2.0.0
Problem Signature 03: 51c34395
Problem Signature 04: mscorlib
Problem Signature 05: 4.0.0.0
Problem Signature 06: 50484bd7
Problem Signature 07: 1204
Problem Signature 08: 89
Problem Signature 09: System.TypeLoadException
OS Version: 6.1.7600.2.0.0.256.48
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
重要的是要注意,我用ILMerge合併MyApplication.exe
和引用的MyLibrary.dll
裝配成一個裝配(輸出的名稱是MyApplication.exe
)。
此外,重要的是要注意,測試機器能夠在沒有問題的情況下運行.exe,直到我發佈了一個向MyApplication項目添加extension method
的更新。
換句話說,之後我加入了擴展方法MyApplication
,然後用ILMerge
的.exe文件合併和.dll,測試機將收到上面的錯誤(有趣的是,我的開發機可以運行與合併後的.exe文件沒問題)。
是否有一個已知問題w/ILMerge和擴展方法?這聽起來很奇怪,但這是我的代碼中唯一改變的東西。
由於我無法在我的開發機器上重現問題,對於如何解決測試機器上發生的System.TypeLoadException
錯誤,您有任何建議嗎?
系統信息
- 瞄準的.NET Framework 4.0(我所有的測試機器安裝了這個)
- ILMerge版本2.12.803
- 開發機:Windows 2008 Server的R2; Visual Studio 2010的專業版
- 客戶機:XP,Win7的,Win8的和(所有的人都得到錯誤)
做些什麼版本的.NET框架的客戶端機器已經安裝?它是3.5還是甚至是客戶端版本? – ChrisF
他們都已經安裝了4.0,在您的生成機器上安裝了 – Jed
,是否安裝了.net 4.5? –