【问题标题】:Custom "Run/Debug in X" command/plugin for Visual StudioVisual Studio 的自定义“在 X 中运行/调试”命令/插件
【发布时间】:2015-05-29 08:53:22
【问题描述】:

如何向 Visual Studio 2012 添加自定义“在 X 中运行/调试”命令?

我有一个 C#/.NET 应用程序,我们称之为“X”,它支持可加载插件。为了编写插件,我在 Visual Studio 中创建了一个新的 C# 类库项目,引用了某个程序集,然后编写了我的代码。为了测试插件,我需要将编译好的插件 DLL 复制到特定的运行时目录,编写一个 XML 配置文件,然后运行 ​​X。我可以使用构建后事件和项目的调试属性(“启动外部程序”)。

但我真正想要的是单击“调试”,然后单击自定义“在 X 中运行”(或“在 X 中调试”)命令,该命令调用某种插件或脚本来完成所有这些操作。该脚本将处理创建 X 配置文件、运行时目录、复制 DLL、启动 X 应用程序并将调试器附加到它。

我愿意编写一个 Visual Studio 插件来完成此任务,但真的不知道从哪里开始。

【问题讨论】:

    标签: .net visual-studio visual-studio-2012 plugins


    【解决方案1】:

    我能想到的最简单的方法是配置您的 Debug 构建以运行 PowerShell 构建后事件并在外部启动应用程序。

    在您的项目中创建一个“Debug.ps1”文件并将其设置为 BuildAction=Content, Copy=Copy Always。在此处编写您的调试先决条件。

    Get-ChildItem | Copy-Item -Destination C:\ExternalApp\Plugins -Force
    #build config, etc here
    

    在您的Debug 构建后事件C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File Debug.ps1 中调用它

    点击F5,您的外部应用程序将启动,并加载最新的插件副本并附加调试器。

    【讨论】:

      【解决方案2】:
      • 编写一个 T4 模板来完成所有繁重的工作(创建配置文件、目录、移动 dll 和启动 X)

      • 请参阅this answer,了解如何在每个构建中运行模板。将此设置为发布构建事件

      • 构建 -> Attach to X

      如果你走这条路,我会推荐 EnityFramework 的默认模板作为你想要完成的教程。他们使用实用程序模板,以及演示如何利用 C# 生成和修改文件的类。从那里可以简单地检查文件是否存在、移动文件,甚至启动 X (Process.Start("X.exe");)。

      您可以在 %ProgramFiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\ 找到这些默认 EF 模板。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-16
        • 1970-01-01
        • 1970-01-01
        • 2016-06-30
        相关资源
        最近更新 更多