1
我們使用Main()
中的try-catch-block來捕獲應用程序的所有異常,並將它們寫入到lgo文件中。在VS2012中的發佈配置中一切正常。拋出異常並將其保存到文件中。C#在安裝後不拋出異常
使用WIX創建安裝程序並安裝應用程序後,直接引發異常(並顯示爲對話框),但未被Main()中的try-catch-block捕獲,因此不再保存在文件中。我如何在Main()
中發現異常?
這是Program.cs中的代碼:
[STAThread]
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
catch (Exception ex)
{
ExceptionLog.SaveExceptionCloseApp(Program.RuntimeGUID, System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex);
}
}
你是什麼意思「保存到文件」?你到底在做什麼?爲我們提供一些在調試時工作的代碼,但不是在安裝之後。 –
Program.cs – user2952145
的附加代碼是否會發生異常,因爲一旦您通過WiX生成的MSI安裝了應用程序,安裝文件夾不包含所有必需的二進制文件?然後執行會在* Main之前失敗*,所以不會被try/catch塊捕獲。我還建議使用FusLogVw工具來檢查是否所有需要的組件都可用。 –