如何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器将永远不会触发它。