Мы используем блок try-catch в Main()
, чтобы поймать все Исключения приложения и записать их в файл lgo. Все отлично работает в конфигурации Release в VS2012. Исключения выбрасываются и сохраняются в файле.C# Исключение не выбрасывается после установки
После создания установщика с использованием WIX и установки приложения исключение напрямую вызывается (и отображается как диалог), но не улавливается блоком try-catch в Main() и поэтому не сохраняется в файле больше , Как я могу поймать Исключение в 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);
}
}
Что именно вы имеете в виду при сохранении файла? Что именно вы делаете? Предоставьте нам некоторый код, который работает во время отладки, но не после установки. –
Добавлен код программы.cs – user2952145
Может ли быть исключение, потому что, как только вы установили приложение через WiX-сгенерированный MSI, папка установки не содержит все необходимые бинарные файлы? Тогда выполнение завершится с ошибкой * до * Main, поэтому не будет поймано вашим блоком try/catch. Я также предлагаю использовать инструмент FusLogVw, чтобы проверить, доступны ли все необходимые сборки. –