2013-10-18 43 views
0

非常簡單的WPF應用程序,Debug和Release版本都是從調試器啓動時運行的。
當我嘗試從命令行啓動一個.exes時,它崩潰了。
在生成發送給MS xml文件,我發現這一點:
<ProblemSignatures> <EventType>APPCRASH</EventType> <Parameter0>App.exe</Parameter0> <Parameter1>0.2.0.0</Parameter1> <Parameter2>5260abb5</Parameter2> <Parameter3>KERNELBASE.dll</Parameter3> <Parameter4>6.1.7601.18229</Parameter4> <Parameter5>51fb1677</Parameter5> <Parameter6>e0434352</Parameter6> <Parameter7>000000000000940d</Parameter7> </ProblemSignatures>
我添加了一個處理程序AppDomain.CurrentDomain.UnhandledException,但它不會似乎一無所獲。
我很感激任何想法可能會出錯......不正確地處理資源,如應用程序使用的一些.png文件?
從註冊表中讀取值的問題?wpf應用程序從調試器啓動,但不是獨立的.exe

TIA -

+0

如果你運行應用程序作爲管理員,你是在讀/寫文件限制位置(ProgramData/UsaerData之外) –

+0

嘗試以管理員身份運行時沒有快樂。沒有文件I/O,只需讀/寫HKEY_CURRENT_USER(但在啓動時不會發生)。 – Number8

+0

查看Windows EventViewer,您可以從那裏獲取堆棧跟蹤。 –

回答

0

當你說你AppDomain.CurrentDomain.UnhandledException事件處理程序沒有捕捉到任何,是你在談論當你調試?如果是這樣的話,那很好......將一些代碼添加到該處理程序中,以將Exception(以及任何內部Exception)的詳細信息保存到文本文件中。現在構建一個新的發行版並運行它。這樣,你至少應該得到問題的細節。

如果出於任何原因無法正常工作,那麼您的問題必須位於構造函數MainWindow.cs或構造函數調用的代碼中,或者WPF框架可能在啓動時調用的任何代碼。因此,如果仔細查看啓動代碼,您可能能夠識別任何可能導致問題的代碼行。

這是訪問資源的任何代碼,尤其是數據庫和網絡驅動器,或者任何可能脫機或用戶可能無法訪問的任何代碼。當你發現這行代碼,只需調用的負載增加MessageBox.Show告訴你什麼是當前值:

MessageBox.Show("Debugging", string.Format("Model: ", Model.ToString())); 
MessageBox.Show("Debugging", string.Format("User: ", User.ToString())); 
MessageBox.Show("Debugging", string.Format("User.Security: ", User.Security.ToString())); 
+0

感謝您的回覆。我很確定問題是'Microsoft.Practices.ServiceLocation.dll';當我將其複製到.exe的起始位置時,該應用程序按預期工作。 – Number8

相關問題