1

最近、Visual Studio 2003で問題が発生しました。ソリューションを数回実行すると、この1回の実行で、多くのオブジェクトが欠落している、または多くのオブジェクトが利用できないことがわかります。それらのスコープ。

この問題は、再構築後に解決されます(プロジェクトが変更されたかどうかに関係なく、ソリューション全体が再構築されます)。これはかなり頻繁に行われるため、[ソリューションの再構築]オプションにキーボードショートカットを割り当てました。この後、問題なくソリューションを実行できます。

ここで、その一歩を踏み出し、ソリューションの再構築が完了した後にソリューションを自動的に実行したいと思います。マクロを使用してみましたが、生成されたコードを確認した後、次のようになりました。

Sub Rebuild()
    DTE.ExecuteCommand("Build.RebuildSolution")
    DTE.Debugger.Go(False)
End Sub

Build.RebuildSolutionExecuteCommandはコマンドを起動するとすぐに返されるDTE.Debuger.Go(False)ため、ソリューションが既に構築されているため実行できないことに気付きました。

必要なのは、Debugger.Go()がExecuteCommandが完了するのを待つ方法、またはRebuildが完了するまで次の行が実行されないソリューションを再構築するための明確な方法です。

4

1 に答える 1

1

私はVS2K3を持っていませんが、それ以降のバージョンでは、これを行う方法は、EnvironmentEventsのBuildDoneイベントに次のように接続することです。

Private Sub BuildEvents_OnBuildDone( _
    ByVal Scope As EnvDTE.vsBuildScope, _
    ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone

    DTE.Debugger.Go(False)

End Sub

ビルドが「再構築」から開始されたときにのみビルドイベントが処理されるように、マクロに設定された変数に接続することをお勧めします。

于 2011-03-11T15:16:22.710 に答える