1
Main()
에서 try-catch-block을 사용하여 응용 프로그램의 모든 예외를 catch하고 lgo 파일에 기록합니다. VS2012의 릴리스 구성에서는 모든 것이 잘 작동합니다. 예외가 발생하여 파일에 저장됩니다.설치 후 C# 예외가 throw되지 않음
WIX를 사용하여 설치 프로그램을 만들고 응용 프로그램을 설치하면 예외가 직접 throw되고 대화 상자로 표시되지만 Main()의 try-catch-block으로 catch되지 않으므로 더 이상 파일에 저장되지 않습니다 . Main()
에서 예외를 어떻게 잡을 수 있습니까?
[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 블록에 의해 catch되지 않습니다. 또한 FusLogVw 도구를 사용하여 필요한 모든 어셈블리를 사용할 수 있는지 확인하는 것이 좋습니다. –