Sto*_*ica 5 debugging visual-studio visual-studio-sdk vsix visual-studio-2015
我无法在最简单的 VSIX 项目中调试最简单的 VS 包。
重现步骤:
创建 VSIX 项目:文件 / 新建 / 项目 / 扩展性 / VSIX 项目
添加 Visual Studio 包:在解决方案资源管理器中右键单击项目节点,然后选择添加/新项目/扩展性/Visual Studio 包
打开新创建的包文件 ( VSPackage1.cs
) 并在第 68 行,即 的第一行处放置一个断点Initialize()
,base.Initialize()
按F5
开始调试
这将启动 Visual Studio 2015 的实验性实例,并安装了包(在Tools / Extensions and Updates... 中确认),但断点被禁用:
上述步骤来自index.html
新创建的 VSIX 项目的入门指南 ( ),因此它应该有效。
附加信息:
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
但这似乎没什么用。在此之后的第一次运行中,断点似乎已启用,但未命中。在第 2 次和后续运行中,断点在运行期间返回禁用状态。F5
,没有任何区别。Console.WriteLine
在Initialize
方法中添加语句,但在Output
窗口中找不到调试文本。所有这些似乎都表明 VS 包没有被初始化,尽管它已经明确安装。我错过了什么?如果相关,这里是 VS 包的源代码,这里是整个虚拟项目。
如果您需要更多信息,请告诉我。
仅当需要 VSPackage 的功能时,才会将 VSPackages 加载到 Visual Studio 中。例如,当 Visual Studio 使用 VSPackage 实现的项目工厂或服务时,会加载 VSPackage。此功能称为延迟加载,只要有可能就使用它来提高性能。
要在 VS 启动时自动加载包,通常将 ProvideAutoLoad 属性添加到主包类中。
有关更多详细信息,请参阅加载 VSPackages文档。