다음은 실행중인 Visual Studio에 연결하고 빌드 명령을 실행하는 C# 프로그램입니다. DTE.9
부분은 "비주얼 스튜디오 2008"를 의미 - VS위한 VS 2005, 또는 DTE.10
에 대한 DTE.8
을 사용하여 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 http://msdn.microsoft.com/en-us/library/ms228772.aspx
(STAThread과 MessageFilter 가진 넌센스 인해 외부 멀티 스레드 애플리케이션 사이 스레딩 경합 문제 "입니다 Visual Studio "라는 단어가 무엇이든간에. http://msdn.microsoft.com/en-us/library/ms228772.aspx의 코드를 붙여 넣으면 작동합니다.)
왜 비주얼 스튜디오 추가 기능을 만드는 것이 좋을까요? 명명 된 파이프에서 명령을 수신하는 경우에도. –
그럴 수있는 유일한 방법이라면 VS 추가 기능을 만들 수는 있지만, 바깥 쪽에서 VS를 자동화하는 방법이 있다면 바쁠만큼 많은 고통을 느끼고 VS를 여러 번 다시 시작해야합니다. –