如何debuggingVisual Studio扩展

我只是为Visual Studio 2010编写一个VSIX扩展,并不知道如何debugging它。

一个明显的方法是输出消息。 扩展模板使用Trace.WriteLine() 。 但是在哪里可以find它的输出?

Visual Studio扩展可以像任何其他应用程序一样进行debugging。 您只需要设置debugging体验,以加载扩展启动devenv。 尝试以下

  • 右键单击该项目,然后select属性
  • 转到debugging选项卡

点击Start External Program的单选button。 将其指向devenv.exe二进制文件。 在我的机器上它位于

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

在非x64机器上,虽然可以删除“(x86)”部分。

然后将命令行参数设置为/rootsuffix Exp 。 这告诉Visual Studio使用实验configuration单元而不是正常的configurationconfiguration单元。 默认情况下,VSIX扩展将在实验configuration单元中注册。

现在你可以使用F5,它将使用VSIX作为可用的扩展来启动Visual Studio。

@JaredPar接受的答案在技术上是正确的,但是您需要为每个开发人员,每次获取代码的新副本以及csproj.user删除csproj.user文件时csproj.user 。 当你这样做,设置保存在csproj.user文件中。

一个更好的select是把设置放在csproj文件中,这样它们不会丢失。 不幸的是,Visual Studio不允许您自动执行此操作,因此您需要手动添加设置。 幸运的是,任何项目的设置都是一样的。

右键单击并卸载项目,然后再次右键单击并编辑csproj项目文件文件。 在XML中,将以下内容添加到第一个PropertyGroup ,例如在TargetFramework之后。

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

这具有以下优点;

  • 它将其设置为debugging和发布
  • 它运行你正在运行的任何版本的Visual Studio
  • 这是检查到源代码pipe理,所以每个开发人员不必记得如何做到这一点:)

如@MBulli在注释中所述,如果您在接受的答案中进行了更改,请删除*.csproj.user文件,因为其中的设置将覆盖您添加到主csproj文件中的设置。

OutputWindowHelper.OutputString方法写入“常规”输出窗口窗格(Ctrl Alt o)。 我在.csproj引用中添加了这行代码,以便在VS 2013中获得此代码

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

也看到这个答案 。

如果您尝试debuggingUnitTestExtension,则还应该将debugging程序附加到vstest。*。exe过程,如此处所述 。 否则,您可能会看到激活断点,但debugging器将永远不会触发它。