【问题标题】:How to debug a Visual Studio Package in a VSIX created in Visual Studio 2015如何在 Visual Studio 2015 中创建的 VSIX 中调试 Visual Studio 包
【发布时间】:2017-04-19 13:59:55
【问题描述】:

我无法在最简单的 VSIX 项目中调试最简单的 VS 包。

重现步骤:

  1. 创建 VSIX 项目:文件/新建/项目/可扩展性/VSIX 项目

  2. 添加 Visual Studio 包:在解决方案资源管理器中右键单击项目节点并选择添加/新建项目/扩展性/Visual Studio 包

  3. 打开新建的包文件(VSPackage1.cs),在第68行下断点,Initialize()的第一行,base.Initialize()

  4. 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.vsixmanifestType=Microsoft.VisualStudio.VsPackage 中的资产
  • 我尝试使用Type=Microsoft.VisualStudio.MefComponentsource.extension.vsixmanifestAssets 中添加项目,但这似乎没有多大作用。在此之后的第一次运行中,断点似乎已启用,但未命中。在第 2 次和随后的运行中,断点在运行期间返回到禁用状态。
  • 我尝试更改清单中的版本,但我注意到任何效果。
  • 我尝试单独运行实验实例,并使用调试器附加到它,但这与直接使用 F5 启动时的行为方式相同,没有任何区别。
  • 我尝试在Initialize方法中添加Console.WriteLine语句,但在Output窗口中找不到调试文本。
  • 我尝试了 x86 平台而不是 Any CPU,但结果相同。
  • 一位同事执行了相同的步骤并得到了相同的结果,因此它可能不是我的计算机特有的。 (我邀请任何人按照相同的步骤来证明我错了,或者发现我的步骤中的错误。)

所有这些似乎都表明 VS 包没有被初始化,尽管它显然已安装。我错过了什么?如果相关,here 是 VS 包的源代码,here 是整个虚拟项目。

如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: visual-studio debugging visual-studio-2015 vsix visual-studio-sdk


    【解决方案1】:

    VSPackages 仅在其功能时才加载到 Visual Studio 是必须的。例如,当 Visual Studio 加载一个 VSPackage 使用 VSPackage 实现的项目工厂或服务。 此功能称为延迟加载,无论何时使用 可能会提高性能。

    要在 VS 启动时自动加载包,通常需要在主包类中添加 ProvideAutoLoad 属性。

    有关详细信息,请参阅Loading VSPackages 文档。

    【讨论】:

      【解决方案2】:

      为了补充这里的另一个答案,OP的实际问题的解决方案是:

      只需忽略该消息,不要担心。 现在没有加载符号,但它们会在断点准备好被命中时加载。

      【讨论】:

        猜你喜欢
        • 2017-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-12
        • 1970-01-01
        • 1970-01-01
        • 2019-11-20
        • 1970-01-01
        相关资源
        最近更新 更多