1

ソリューションがエラーなしでコンパイル/ビルドされたかどうかに応じて、ビルドが完了したときに処理する必要のある特定のロジックがあります。

最後のビルドでエラーが発生したかどうかをどのように検出できますか?

vsBuildStateには、Done、InProgress、およびNotStartedの定義が含まれていますが、エラーを確認するにはどうすればよいですか?

    public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        _buildEvents = _applicationObject.Events.BuildEvents;            
        _buildEvents.OnBuildBegin += customBuildHandler;
        _buildEvents.OnBuildDone += customBuildEndHandler;
    }

    void customBuildEndHandler(vsBuildScope Scope, vsBuildAction Action)
    {
            if(IsLastBuildSuccessful) // How can I determine this?
            {
                    //Do Something
            }
    }
4

1 に答える 1

1

イベントハンドラー内では、LastBuildInfo変数を使用して最後のビルドの状態をインターセプトする必要があります。参照: http: //msdn.microsoft.com/en-US/library/envdte.solutionbuild.lastbuildinfo (v = vs.100).aspx

var solution = _applicationObject.Solution;
var lastBuildState = solution.SolutionBuild.LastBuildInfo; 
if(lastBuildState == 0)
    //Build succeeded
于 2013-01-30T19:19:09.200 に答える