【发布时间】:2017-04-19 13:59:55
【问题描述】:
我无法在最简单的 VSIX 项目中调试最简单的 VS 包。
重现步骤:
创建 VSIX 项目:文件/新建/项目/可扩展性/VSIX 项目
添加 Visual Studio 包:在解决方案资源管理器中右键单击项目节点并选择添加/新建项目/扩展性/Visual Studio 包
打开新建的包文件(
VSPackage1.cs),在第68行下断点,Initialize()的第一行,base.Initialize()按
F5开始调试
这将启动 Visual Studio 2015 的实验实例,并安装了包(在工具/扩展和更新...中确认),但断点被禁用:
以上步骤来自新创建的 VSIX 项目的入门指南 (index.html),因此它应该可以工作。
附加信息:
- 解决方案配置为Debug,平台为Any CPU
- 项目的调试属性自动将启动外部程序设置为
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe,命令行参数设置为/rootsuffix Exp - 我将Copy Debug Symbols to Output Directory设置为
True,之后projectname.pdb文件正确出现在bin\Debug -
bin\Debug\projectname.vsix文件包含projectname.pdb - 该项目包含在
source.extension.vsixmanifest和Type=Microsoft.VisualStudio.VsPackage中的资产 - 我尝试使用
Type=Microsoft.VisualStudio.MefComponent在source.extension.vsixmanifest的Assets 中添加项目,但这似乎没有多大作用。在此之后的第一次运行中,断点似乎已启用,但未命中。在第 2 次和随后的运行中,断点在运行期间返回到禁用状态。 - 我尝试更改清单中的版本,但我注意到任何效果。
- 我尝试单独运行实验实例,并使用调试器附加到它,但这与直接使用
F5启动时的行为方式相同,没有任何区别。 - 我尝试在
Initialize方法中添加Console.WriteLine语句,但在Output窗口中找不到调试文本。 - 我尝试了 x86 平台而不是 Any CPU,但结果相同。
- 一位同事执行了相同的步骤并得到了相同的结果,因此它可能不是我的计算机特有的。 (我邀请任何人按照相同的步骤来证明我错了,或者发现我的步骤中的错误。)
所有这些似乎都表明 VS 包没有被初始化,尽管它显然已安装。我错过了什么?如果相关,here 是 VS 包的源代码,here 是整个虚拟项目。
如果您需要更多信息,请告诉我。
【问题讨论】:
标签: visual-studio debugging visual-studio-2015 vsix visual-studio-sdk