为Visual Studio自定义“在X中运行/调试”命令/插件

时间:2015-03-25 15:26:25

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

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

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

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

我愿意编写一个Visual Studio插件来实现这一目标,但不知道从哪里开始。

2 个答案:

答案 0 :(得分:0)

我能想到的最简单的方法是配置您的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,您的外部应用将启动,并附带已加载插件和调试器的最新副本。

答案 1 :(得分:0)

  • 编写一个T4模板,完成所有繁重工作(创建配置文件,目录,移动dll,并启动X)

  • 有关如何在每个版本上运行模板,请参阅this answer。将其设置为帖子构建事件

  • 构建 - > Attach to X

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

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