我已經爲Visual Studio項目創建了安裝文件。這些是通過將項目輸出添加到安裝項目中創建的。從而包含所有的DLL文件和項目本身。安裝時應用程序崩潰
當應用程序安裝在用於開發它的機器上時,它工作正常。但是,當它安裝在另一臺安裝了全新Windows的計算機上時(安裝了.NET Framework 4.0),應用程序在啓動時崩潰 - 它甚至不啓動。
有沒有人知道爲什麼會發生這種情況?
我已經爲Visual Studio項目創建了安裝文件。這些是通過將項目輸出添加到安裝項目中創建的。從而包含所有的DLL文件和項目本身。安裝時應用程序崩潰
當應用程序安裝在用於開發它的機器上時,它工作正常。但是,當它安裝在另一臺安裝了全新Windows的計算機上時(安裝了.NET Framework 4.0),應用程序在啓動時崩潰 - 它甚至不啓動。
有沒有人知道爲什麼會發生這種情況?
得到什麼崩潰的線索,你可以用下面的Program.cs中(或在main()函數)內的捕獲處理異常:
static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
MessageBox.Show(e.Exception.Message, "Unhandled Thread Exception");
// here you can log the exception ...
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
MessageBox.Show((e.ExceptionObject as Exception).Message +
"\r\n\r\nStack Trace:" +
(e.ExceptionObject as Exception).InnerException.StackTrace, "Unhandled UI Exception");
// here you can log the exception ...
}
這些消息會給你一些線索。你也應該檢查事件日誌,你可能會發現一些有用的信息。
我首先看的是Windows事件日誌。很有可能將崩潰的原因寫入應用程序事件日誌。
你可以嘗試用DispatcherUnhandledException捕捉所有未處理的異常:
public partial class App : Application
{
void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
// Process unhandled exception
// Prevent default unhandled exception processing
e.Handled = true;
}
}
有了這一點,你可以添加一小段代碼編寫異常日誌文件,或一個MessageBox。
通常是因爲你沒有包含所有的dll。應用報告是否有錯誤? –
可能是很多事情。數據庫連接,無效的配置文件,缺少一個程序集。事件查看器中的外觀可以回答很多問題。此外[Process Explorer](http://technet.microsoft.com/en-us/sysinternals/bb896653)在這裏可能會有很大的幫助。 – Steve
你能告訴我們它是什麼樣的應用程序 - WPF,WinForms,控制檯應用程序,網站等?根據應用程序的類型,應該有一些機制來捕獲或至少確定導致應用程序崩潰的異常。 – KenD