【问题标题】:Migrated Visual Studio extension package does not load when building from commandline从命令行构建时未加载迁移的 Visual Studio 扩展包
【发布时间】:2015-08-24 13:20:01
【问题描述】:

几年前,我们制作了一个 Visual Studio 插件,它使用构建事件作为动作的触发器。加载项在 IDECommand Line 模式下工作。要为命令行构建加载加载项,您必须设置 <CommandLineSafe>1</CommandLineSafe> 选项。

迁移的扩展在IDE 模式下工作,但在命令行构建期间不会加载扩展。 为命令行构建加载扩展的配置如何?

【问题讨论】:

    标签: visual-studio-2013 visual-studio-2015 visual-studio-extensions visual-studio-addins vsix


    【解决方案1】:

    有关加载 Visual Studio 扩展包的信息可在此处找到:https://msdn.microsoft.com/en-us/library/bb166762.aspx 和此处:https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.provideautoloadattribute.aspx

    您可以结合 UI 上下文使用 ProvideAutoLoadAttribute 标记您的包类,例如:

    [ProvideAutoLoad(UIContextGuids.EmptySolution)]
    public class MyCustomPackage : VSPackage
    {
        ...
    }
    

    可以指定多个属性。可用的 UI 上下文由 UIContextGuids 类型定义。

    在我的一个扩展中,我使用以下 UI 上下文的组合来确保我的包始终加载,无论是否加载了解决方案:EmptySolutionNoSolutionSolutionExists

    【讨论】:

    • 我的代码中已经有了这些属性:[ProvideAutoLoad(UIContextGuids.EmptySolution)] [ProvideAutoLoad(UIContextGuids.NoSolution)] [ProvideAutoLoad(UIContextGuids.SolutionExists)] [ProvideAutoLoad(UIContextGuids.SolutionBuilding)] [ProvideAutoLoad(UIContextGuids.SolutionHasMultipleProjects)] [ProvideAutoLoad(UIContextGuids.SolutionHasSingleProject)] [ProvideAutoLoad(UIContextGuids80.SolutionExistsAndNotBuildingAndNotDebugging)]
    • 如果我调用 %ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe /rebuild "Debug|Any CPU" "Solution.sln" 包没有加载。
    • 您检查过活动日志吗?也许还有另一个问题阻止了扩展加载...
    • 来自日志:<entry> <record>2134</record> <time>2015/08/26 06:18:49.150</time> <type>Information</type> <source>VisualStudio</source> <description>Importing pkgdef file</description> <path>C:\USERS\BFJS\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\14.0EXP\EXTENSIONS\BFJS\VSIXPROJECT2\1.0.1\VSIXProject2.pkgdef</path> </entry>
    • 还有:<entry> <record>2561</record> <time>2015/08/26 06:18:51.461</time> <type>Information</type> <source>Extension Manager</source> <description>Successfully loaded extension...</description> <path>C:\USERS\BFJS\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\14.0EXP\EXTENSIONS\BFJS\VSIXPROJECT2\1.0.1\</path> </entry>
    猜你喜欢
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多