none
디버깅 모드와 컴파일 모드 차이점이 있나요?? RRS feed

  • 질문

  • 비쥬얼스튜디오상에서 디버깅모드실행시 OK
    컴파일(Ctrl + F5) 라던가 빌드된 파일을 실행시 DB에 연결 실패
    무엇이 문제인가요??? 차이점이 있나요??
    2012년 1월 17일 화요일 오전 6:31

답변

  • 안녕하십니까? 상철이 님

    Microsoft MSDN Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신디버깅 모드와 컴파일 모드 차이점이 있나요??”에 대한 답변을 드리겠습니다.

     

    제 생각에는 Debug 시의 참조 경로와 Release 시의 참조 경로가 잘못되어서 문제가 발생하는 것 같습니다.

     

    고객님께서 문의하신 내용과 유사한 이슈가 포럼에 Visual C# 포럼 카테고리의 "Release 모드에서 디버그 정보 파일을 만드는 동안 예기치 않은 오류 발생 어떻게 해결 해야 하나요?" 에 답변 되어있습니다.

     

    참조자료

    디버그 모드 및 컴파일 모드 동작 정보: 차이점

    http://support.microsoft.com/kb/201741/ko

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.


    • 편집됨 Jina LeeModerator 2012년 1월 17일 화요일 오전 7:21
    • 답변으로 표시됨 상철이 2012년 1월 19일 목요일 오전 6:18
    2012년 1월 17일 화요일 오전 7:21
    중재자
  • 안녕하세요. Visual Studio ALM MVP 엄준일 입니다.

    말씀하시는 내용으로 보아 Debugging 시 Exception 발생을 무시하는 듯 합니다.

    여기에는 몇 가지 원인이 있습니다.
    특히 클라이언트 응용 프로그램인 Windows Forms이나 WPF Application 인 경우 주로 발생을 합니다.

    이유인 즉, 응용 프로그램을 실행하기 위한 Thread 를 생성하면서 그 내부 생성자에서 발생하는 경우, 예외가 잡히지 않는 경우가 많습니다.

    이런 경우 다음과 같이 Application.Run 이전에 다음의 코드를 삽입해 보시기 바랍니다.

    public static void Main(string[] args)
    {
        // Add the event handler for handling UI thread exceptions to the event.
        Application.ThreadException += new ThreadExceptionEventHandler(ErrorHandlerForm.Form1_UIThreadException);
    
        // Set the unhandled exception mode to force all Windows Forms errors to go through
        // our handler.
        Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
    
        // Add the event handler for handling non-UI thread exceptions to the event. 
        AppDomain.CurrentDomain.UnhandledException +=
            new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
    
        // Runs the application.
        Application.Run(new ErrorHandlerForm());
    }
    

    AppDomain currentDomain = AppDomain.CurrentDomain;
          currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
    


     

    참고 http://msdn.microsoft.com/en-us/library/system.windows.forms.application.threadexception.aspx
    http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx 

     

    감사합니다. 

     


    엄준일 (Junil, Um) Microsoft Visual Studio ALM MVP (Team System) Personal Blog : http://blog.powerumc.kr Visual Studio Korea Team Blog : http://vsts2010.net
    • 답변으로 표시됨 상철이 2012년 1월 19일 목요일 오전 6:18
    2012년 1월 18일 수요일 오전 2:50

모든 응답

  • 안녕하십니까? 상철이 님

    Microsoft MSDN Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신디버깅 모드와 컴파일 모드 차이점이 있나요??”에 대한 답변을 드리겠습니다.

     

    제 생각에는 Debug 시의 참조 경로와 Release 시의 참조 경로가 잘못되어서 문제가 발생하는 것 같습니다.

     

    고객님께서 문의하신 내용과 유사한 이슈가 포럼에 Visual C# 포럼 카테고리의 "Release 모드에서 디버그 정보 파일을 만드는 동안 예기치 않은 오류 발생 어떻게 해결 해야 하나요?" 에 답변 되어있습니다.

     

    참조자료

    디버그 모드 및 컴파일 모드 동작 정보: 차이점

    http://support.microsoft.com/kb/201741/ko

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.


    • 편집됨 Jina LeeModerator 2012년 1월 17일 화요일 오전 7:21
    • 답변으로 표시됨 상철이 2012년 1월 19일 목요일 오전 6:18
    2012년 1월 17일 화요일 오전 7:21
    중재자
  • 안녕하세요. Visual Studio ALM MVP 엄준일 입니다.

    말씀하시는 내용으로 보아 Debugging 시 Exception 발생을 무시하는 듯 합니다.

    여기에는 몇 가지 원인이 있습니다.
    특히 클라이언트 응용 프로그램인 Windows Forms이나 WPF Application 인 경우 주로 발생을 합니다.

    이유인 즉, 응용 프로그램을 실행하기 위한 Thread 를 생성하면서 그 내부 생성자에서 발생하는 경우, 예외가 잡히지 않는 경우가 많습니다.

    이런 경우 다음과 같이 Application.Run 이전에 다음의 코드를 삽입해 보시기 바랍니다.

    public static void Main(string[] args)
    {
        // Add the event handler for handling UI thread exceptions to the event.
        Application.ThreadException += new ThreadExceptionEventHandler(ErrorHandlerForm.Form1_UIThreadException);
    
        // Set the unhandled exception mode to force all Windows Forms errors to go through
        // our handler.
        Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
    
        // Add the event handler for handling non-UI thread exceptions to the event. 
        AppDomain.CurrentDomain.UnhandledException +=
            new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
    
        // Runs the application.
        Application.Run(new ErrorHandlerForm());
    }
    

    AppDomain currentDomain = AppDomain.CurrentDomain;
          currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
    


     

    참고 http://msdn.microsoft.com/en-us/library/system.windows.forms.application.threadexception.aspx
    http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx 

     

    감사합니다. 

     


    엄준일 (Junil, Um) Microsoft Visual Studio ALM MVP (Team System) Personal Blog : http://blog.powerumc.kr Visual Studio Korea Team Blog : http://vsts2010.net
    • 답변으로 표시됨 상철이 2012년 1월 19일 목요일 오전 6:18
    2012년 1월 18일 수요일 오전 2:50