[visual-studio] Visual Studio 확장을 디버깅하는 방법

Visual Studio 2010 용 VSIX 확장을 작성 중이며 디버깅 방법을 알 수 없습니다.

한 가지 분명한 방법은 메시지를 출력하는 것입니다. 확장 템플릿은 Trace.WriteLine(). 그러나 어디에서 출력을 찾을 수 있습니까?



답변

Visual Studio 확장은 다른 애플리케이션과 마찬가지로 디버깅 할 수 있습니다. 로드 된 확장으로 devenv를 시작하려면 디버그 환경을 설정하기 만하면됩니다. 다음을 시도하십시오

  • 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오.
  • 디버그 탭으로 이동

에 대한 라디오 버튼을 클릭합니다 Start External Program. devenv.exe 바이너리를 가리 킵니다. 내 컴퓨터에서

C : \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe

x64가 아닌 시스템에서는 “(x86)”부분을 제거 할 수 있습니다.

그런 다음 명령 줄 인수를 /rootsuffix Exp. 그러면 Visual Studio가 일반 구성 하이브 대신 실험적 하이브를 사용하도록 지시합니다. 빌드시 기본적으로 VSIX 확장은 실험적 하이브에 등록됩니다.

이제 F5를 할 수 있으며 VSIX를 사용 가능한 확장으로 사용하여 Visual Studio를 시작합니다.


답변

@JaredPar가 허용하는 대답은 기술적으로 정확하지만 모든 개발자, 코드의 새 복사본을 얻을 때마다, csproj.user파일이 삭제 될 때마다 다시 실행해야한다는 사실로 인해 어려움을 겪습니다 . 그렇게하면 설정이 csproj.user파일에 저장 됩니다.

더 나은 옵션은 설정 csproj이 손실되지 않도록 파일에 저장하는 것입니다. 불행히도 Visual Studio에서는이 작업을 자동으로 수행 할 수 없으므로 수동으로 설정을 추가해야합니다. 다행히 설정은 모든 프로젝트에서 동일합니다.

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 언로드 한 다음 다시 마우스 오른쪽 버튼을 클릭하고 csproj프로젝트 파일 파일을 편집 합니다. XML에서 첫 번째에 다음을 추가합니다 ( PropertyGroup예 : TargetFramework.

<StartAction>Program</StartAction>
<StartProgram>$(DevEnvDir)\devenv.exe</StartProgram>
<StartArguments>/rootsuffix Exp</StartArguments>

이것은 다음과 같은 장점이 있습니다.

  • 디버그 및 릴리스를 위해 설정합니다.
  • 현재 실행중인 모든 버전의 Visual Studio를 실행합니다.
  • 소스 제어에 체크인되므로 모든 개발자가 수행 방법을 기억할 필요가 없습니다. 🙂

@MBulli가 주석에 언급했듯이 수락 된 답변을 변경 한 경우 *.csproj.user파일의 설정이 기본 csproj파일에 추가 한 설정보다 우선하므로 파일을 삭제하십시오 .


답변

OutputWindowHelper.OutputString의 ‘일반’출력 창 창 (Ctrl 키를 대체 O)에 대한 방법 쓰기. 나는 VS 2013에서 이것을 얻기 위해 .csproj 참조 에이 줄을 추가했습니다.

<Reference Include="Microsoft.VisualStudio.Services.Integration, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />

또한 이 답변을 참조하십시오 .


답변

UnitTestExtension을 디버깅하려는 경우 여기에 설명 된 것과 같은 vstest. *. exe 프로세스에도 디버거를 연결해야 합니다 . 그렇지 않으면 활성화 중단 점이 표시 될 수 있지만 디버거는이를 절대로 치지 않습니다.


답변