2010-03-02 79 views
2

當我將整個程序directoy複製到另一臺機器時,遇到以下異常。我可以採用哪些工具進行調試?謝謝。啓動exec時無法加載程序集或文件

未處理的異常:System.TypeInitializationException:對於 r'SomeClass'的類型初始化程序拋出了一個exceptio n。 ---> System.IO.FileLoadException:無法加載文件或程序集'SomeAssembly.dll,Version = 0.0.0.0,Culture = neut ral,PublicKeyToken = null'或其依賴項之一。由於應用程序配置不正確,此應用程序啓動失敗 。重新安裝 應用程序可能會解決此問題。 (從HRESULT異常:0x800736B1) 文件名: 'SomeAssembly.dll,版 = 0.0.0.0,文化=中性公鑰=空' ---> System.Runtime.InteropServi ces.COMException(0x800736B1):此應用程序無法啓動,因爲 應用程序配置不正確。重新安裝應用程序可能會修復問題。 (來自HRESULT的異常:0x800736B1)

回答

4

這是一個Windows錯誤,而不是.NET錯誤。錯誤代碼是14001,ERROR_SXS_CANT_GEN_ACTCTX,「應用程序啓動失敗,因爲其並行配置不正確,請參閱應用程序事件日誌以獲取更多詳細信息。」

查看Windows事件日誌,它會告訴您什麼DLL忘記安裝在目標機器上。如果它是混合模式程序集,那麼它通常是C/C++運行時DLL,或者您部署了調試版本。

+0

@bobugz:錯誤消息是「依賴程序集Microsoft.VC90.DebugCRT找不到,最後錯誤是您的系統上未安裝引用的程序集。」如何在我的成功機器上搜索「Microsoft.VC90.DebugCRT」? – Ricky 2010-03-02 04:29:48

+0

是的,那就是C/C++運行時DLL,你*部署了調試版本。構建您的發佈版本,安裝此:http://www.microsoft.com/downloads/details.aspx?familyid=2051a0c1-c9b5-4b0a-a8f5-770a549fd78c&displaylang=en – 2010-03-02 04:55:08

+0

安裝鏈接後仍然會拋出相同的異常u提供。 – Ricky 2010-03-02 06:30:57

0

如果您只是將文件複製過來,請檢查dll是否未被操作系統阻止。要檢查,請右鍵單擊該dll,轉到屬性並查看高級按鈕下對話框的右下角。如果有一個按鈕說「解鎖」,然後點擊它。您必須對其全部執行此操作,否則請使用gacutil實用程序將它們添加到GAC。

保羅

1

可以使用fusion log調試這類問題。它會告訴你它在哪裏搜索依賴關係,如果它發現它們,並且它發現它們並且未能加載它們,爲什麼。

+0

不錯的工具,謝謝你! – Ricky 2010-03-02 06:32:05

相關問題