我无法在最简单的VSIX项目中调试最简单的VS包。如何调试在Visual Studio 2015中创建的VSIX中的Visual Studio包
重现步骤:
创建一个VSIX项目:文件/新建/项目/扩展/ VSIX项目
添加的Visual Studio包:右键单击在解决方案的项目节点Explorer并选择添加/新建项目/可扩展性/ Visual Studio包装
打开新创建的pa ckage文件(
VSPackage1.cs
)将断点上线68的Initialize()
第一线,base.Initialize()
按
F5
开始调试
这将启动的Visual Studio 2015年的一个实验实例中,与包安装(确认工具/扩展和更新...),但断点被禁用:
以上步骤来自新创建的VSIX项目的入门指南(index.html
),所以它应该已经工作。
附加信息:
- 解决方案配置为调试,平台是任何CPU
- 该项目的调试属性自动拥有启动外部程序设置为
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe
和命令行论据设置为/rootsuffix Exp
- 我设置个拷贝调试符号到输出目录到
True
,之后的projectname.pdb
文件中正确地出现在bin\Debug
- 的
bin\Debug\projectname.vsix
文件包含projectname.pdb
- 该项目包括在资产在
source.extension.vsixmanifest
与Type=Microsoft.VisualStudio.VsPackage
- 我尝试添加该项目在资产在
source.extension.vsixmanifest
与Type=Microsoft.VisualStudio.MefComponent
但这似乎并没有太多。在此之后的第一次运行中,断点似乎已启用,但未被击中。在第二次和以后的运行中,断点在运行期间回到禁用状态。 - 我试着改变清单中的版本,但是我注意到了任何影响。
- 我试着单独运行实验实例,并使用调试器附加到实验实例上,但其运行方式与直接启动
F5
时的操作方式没有什么不同。 - 我尝试在
Initialize
方法中添加Console.WriteLine
语句,但我在Output
窗口中找不到调试文本。 - 我试过x86平台而不是任何CPU,但结果相同。
- 一位同事遵循相同的步骤,得到了相同的结果,所以它可能不是特定于我的电脑。 (我邀请任何人请遵循相同的步骤,并证明我错了,或者被发现在我的脚步的错误。)
这一切似乎表明,在VS包是没有得到初始化,虽然这明显是安装。我错过了什么?如果相关,here是VS包的源代码,而here是整个虚拟项目。
如果您需要更多信息,请让我知道。
工作就像一个魅力,谢谢! – janos