2009. 10. 8. 07:17

Visual Studio 빌드 자동화

아래는 JScript 예. EnvDTE 개체 말고 devenv.exe 를 이용해서도 빌드할 수 있다. 빌드랑 빌드 성공 여부는 알 수 있는데 오류목록을 얻어오거나 출력창을 캡처하려면 좀더 작업해야 하지만 일단 뒤로 미루자.


function test () {
    // Codes here.
    
    try {
        var dte2 = new ActiveXObject("VisualStudio.Solution.8.0");
        
        var dte = dte2.DTE;
        
        var vsSolution = dte2.DTE.Solution;
        
        vsSolution.Open ("C:\\Documents and Settings\\yim.jihoon\\My Documents\\Visual Studio 2005\\Projects\\HtmlTest\\HtmlTest.sln");
        
        vsSolution.SolutionBuild.Build(true);
        
        var nErrorCount = vsSolution.SolutionBuild.LastBuildInfo;
        var output = dte.Windows.item("{34E76E81-EE4A-11D0-AE2E-00A0C90FFFC3}");
        Log.Print(output.Caption);
        //var activePain = output.OutputWindowPanes.item(0);
        //var textDocument = activePain.TextDocument;
        //var sel = output.Selection;
        
        //sel.StartOfDocument()
        //sel.EndOfDocument(True)
        
        //Log.Print(sel.Text);
        
        var win;
        var en;
        en = new Enumerator(dte.Windows);
        for ( ; !en.atEnd() ; en.moveNext() )
        {
            win = en.item();
            Log.Print(win.Caption);
            Log.Print(win.ObjectKind);
        }

        
        vsSolution.Close(false);
        vsSolution.DTE.Quit();
    
       } catch(e)
       {
           Log.Print(e.description);
       }
    
    // if you want to continue running next script, return true.
    // Otherwise return false to quit running.
    return true;    
}