gpt4 book ai didi

visual-studio - 如何在 Visual Studio 2015 中创建的 VSIX 中调试 Visual Studio 包

转载 作者:行者123 更新时间:2023-12-04 03:52:22 24 4
gpt4 key购买 nike

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

重现步骤:

  • 创建 VSIX 项目:文件/新建/项目/可扩展性/VSIX 项目
  • 添加 Visual Studio 包:在解决方案资源管理器中右键单击项目节点并选择 添加/新项目/可扩展性/Visual Studio 包
  • 打开新创建的包文件( VSPackage1.cs )并在第 68 行,即 Initialize() 的第一行放置一个断点, base.Initialize()
  • F5开始调试

  • 这将启动 Visual Studio 2015 的实验性实例,并安装了包(在 工具/扩展和更新... 中确认),但断点被禁用:

    breakpoint disabled

    上述步骤来自新创建的 VSIX 项目的入门指南 ( index.html),所以它应该可以工作。

    附加信息:
  • 解决方案配置为调试 , 平台是 任意 CPU
  • 项目的 Debug 属性自动有 启动外部程序 设置为 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
  • 项目收录于 Assets source.extension.vsixmanifestType=Microsoft.VisualStudio.VsPackage
  • 我尝试在 中添加项目 Assets source.extension.vsixmanifestType=Microsoft.VisualStudio.MefComponent但这似乎没有多大作用。在此之后的第一次运行中,断点似乎已启用,但未命中。在第 2 次和后续运行中,断点在运行期间返回禁用状态。
  • 我尝试更改 list 中的版本,但我注意到任何影响。
  • 我尝试单独运行实验实例,并使用调试器附加到它,但这与直接使用 F5 启动时的行为方式相同。 ,没有任何区别。
  • 我尝试添加 Console.WriteLine Initialize 中的声明方法,但我在 Output 中找不到调试文本 window 。
  • 我尝试了 x86 平台而不是 Any CPU,但结果相同。
  • 一位同事执行了相同的步骤并得到了相同的结果,因此这可能不是我的计算机特有的。 (我邀请任何人按照相同的步骤来证明我是错的,或者指出我步骤中的错误。)

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

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

    最佳答案

    VSPackages are loaded into Visual Studio only when their functionality is required. For example, a VSPackage is loaded when Visual Studio uses a project factory or a service that the VSPackage implements. This feature is called delayed loading, which is used whenever possible to improve performance.


    要在 VS 启动时自动加载包,您通常会向主包类添加一个 ProvideAutoLoad 属性。
    Loading VSPackages文档了解更多详情。

    关于visual-studio - 如何在 Visual Studio 2015 中创建的 VSIX 中调试 Visual Studio 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43497943/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com