如果你可以修改代碼和重新部署:
編輯:我看到你的異常是從一個消息處理程序來。上面的代碼編輯可以(也應該)應用於所有的入口方法,其中包括處理代碼之外事件的所有事件處理程序。上面的崩潰屏幕可能會顯示各種處理程序中的異常,即異步執行的代碼。例如 - 異步調用一個按鈕處理程序應該有兩個試/漁獲量,以防止碰撞窗從顯示出來:
private void Button_Clicked(object sender, EventArgs arg){
try{
Action<string> asyncCall = (s)=>{
try{
//...exception here will cause crash
// as it's not handled in Button_Clicked
} catch (Exception xOnAsyncThread){
}
};
asyncCall.BeginInvoke("outahere",null,null);
} catch (Exception xOnUIThread){
}
}
上面的語句是用於處理以及窗口消息真的 - 它只是一個之外的另一個事件處理程序事件
如果您不能修改代碼並重新部署使用的Sysinternals的Process Monitor: http://technet.microsoft.com/en-us/sysinternals/bb896645 配置它來監控你的應用程序和亮點文件未找到事件(見他們的文檔獲取詳細信息)
如果是的ProcessMonitor太多從異常消息複製所有內容,並通過去排斥 - 已加載的那些都不是問題
我希望有一種方法來安裝處理程序來捕獲此異常,然後報告包含未找到文件的名稱的錯誤消息。該應用程序加載100多個dll,因此如果沒有指示缺少的內容就會得到「缺少某些內容」的錯誤是超級無用的。 – Philip
我說它發生得早,主要之前。這是不正確的,我可以在錯誤發生之前通過主罰。當我跨過發生錯誤時的Application.Run。 – Philip
我實際上可以用[ThreadExceptionEventHandler](http://www.csharp-examples.net/catching-unhandled-exceptions/)捕獲這個異常。但是我看不到它正在查找的DLL的名稱,只是「找不到指定的模塊」,因此沒有任何幫助。 – Philip