Csharp/C#教程:从单独的进程自动化Visual Studio实例分享


从单独的进程自动化Visual Studio实例

有没有办法编写一个可以连接到正在运行的Visual Studio实例并向其发出命令的应用程序? 例如,我是否可以使用按钮编写WPF应用程序,单击此按钮时,会向已打开的Visual Studio实例发出“Build.BuildSolution”命令,从而启动构建?

我确定我可以使用SendKeys发送Ctrl + Shift + B,但我想知道是否有办法写入实际的API来自动化Visual Studio,并按名称调用命令。

这是一个连接到正在运行的Visual Studio并发出Build命令的C#程序。 DTE.9部分表示“Visual Studio 2008” – 使用DTE.8表示VS 2005,或DTE.10表示VS 2010。

 using System; using System.Runtime.InteropServices; using EnvDTE80; namespace SORemoteBuild { class Program { [STAThread] static void Main(string[] args) { // Get an instance of the currently running Visual Studio IDE. EnvDTE80.DTE2 dte2; dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal. GetActiveObject("VisualStudio.DTE.9.0"); dte2.Solution.SolutionBuild.Build(true); } } public class MessageFilter : IOleMessageFilter { // ... Continues at https://msdn.microsoft.com/en-us/library/ms228772.aspx 

(STAThread和MessageFilter的无意义是“由于外部multithreading应用程序和Visual Studio之间的线程争用问题”,无论这意味着什么。粘贴在https://msdn.microsoft.com/en-us/library/的代码中ms228772.aspx使它工作。)

如果您只是尝试自动化应用程序的构建/打包,那么您应该查看MSBuild – 它是Microsoft的构建引擎,它允许您编写Visual Studio大多数function的自动化脚本。

上述就是C#学习教程:从单独的进程自动化Visual Studio实例分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1002390.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐