문제

이 코드를 어딘가에서 thisdocument_startup 외부에서 Word Document Level VSTO 솔루션에 배치하십시오 (클릭 이벤트와 함께 리본 버튼 작성) :

int zero = 0;
int divideByZero = 10 / zero;

디버깅없이 시작 (CTRL + F5), 결과 : 예외가 삼켜지고 나머지 코드는 조용히 실패합니다.

예외 ~ 할 것이다 이 document_startup에 배치되면 표시되지만 다른 곳에서는 보이지 않습니다. Microsoft의 VSTO 포럼과 MSDN 문서는 시도한 느낌이 드는 것 같습니다 ... 캐치는 알려지지 않은 사람에게는 큰 문제가 아닙니다. 알려지지 않은 미지수는 어떻습니까?

관리 코드에 대한 처리되지 않은 예외를 다루는 모든 일반적인 방법은 작동하지 않는 것 같습니다.

//These don't work
AppDomain.CurrentDomain.UnhandledException ...
System.Windows.Forms.Application.ThreadException ...

VSTO 코드 문제 해결에 관한 게시물을 읽었습니다. VSTO 코드는 항상 시도해 보는 것 같습니다 ... 실질적으로 모든 것을 잡아라!

알려져 있고 알려지지 않은 (지금은 보이지 않고 침묵하는!) 실패를 처리하는 더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

실제로는 매우 쉽습니다. 사무실 응용 프로그램을 실행하기 전에 환경 변수 vsto_suppressdisplayalerts를 0으로 설정하면 사무실에는 예외가 표시되고 문제가있을 때 시작 중에 추가 기능을 죽이지 않습니다.

유용한 PowerShell 스크립트가 있습니다. http://archive.msdn.microsoft.com/vstotroubleShooter실행하여 시작하십시오 vstotroubleshooter.ps1 setdbg VSTO_SUPPRESSDISPLAYALERTS ENV 변수를 설정합니다

다른 팁

문제는 "애드 인 사용자 인터페이스"주변의 예외 만으로만 분리되어 있다고 생각합니다. 여기에서 발견 된 직접 설정입니다 (Word 2007).

단어 옵션> 고급> 일반> "추가 사용자 인터페이스 오류 표시"

Word의 응용 프로그램 수준 추가 기능과 동일한 문제가있었습니다.

F5를 사용하여 Visual Studio에서 Add-in을 실행하는 경우 다음과 같은 경우 VS (EG 2008 SP1)에서 "사용자 코드로"항상 "처리되지 않은"을 얻을 수 있습니다.

  • CLR 예외에 대해 "예외가있을 때 브레이크"또는 Visual Studio 설정을 선택 취소하거나 CLR 예외 또는

  • System.diagnostics.debuggernonusercodeattribute ()] 주석을 자유롭게 적용합니다.

이 중 하나를 완료하면 핸드 사이드 픽스크/스레드 외환이 작동하는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top