7

(ここで説明するように)[出力]ウィンドウの[ビルド順序]項目を使用して、VisualStudioでマルチコアビルドのビルド出力を並べ替えることができることを知っています。

しかし、それを実行してF7もう一度押すと、オプションがビルドに戻り、ビルド順序に再度切り替える必要があります。

[出力]ウィンドウでビルド順序をデフォルト設定として設定する方法はありますか?

少し検索すると、この質問は何度か尋ねられましたが、答えられなかったことがわかります。


編集:サイモンによって与えられた
答え私のために働きます(または少なくともそれは私を正しい方向に向けます)、しかし私は彼のコードを単にコピーして私のプロジェクトに挿入することができませんでした。代わりに、ここで説明されているように、ビルドイベントのハンドラーを作成する必要がありますMyMacros

  1. クラスビューエクスプローラペインの[マクロIDE]で、[ EnvironmentEvents ]ノードをダブルクリックして、 [ EnvironmentEvents ]タブとマクロエディタペインのドロップダウンメニューとして表示します。

  2. [ EnvironmentEvents ]ドロップダウンメニューから、 TaskListEventsなどのイベントタイプを選択します。これで、[宣言]コンボボックスに、使用可能なタスクリストイベントが表示されます。

  3. [宣言]ドロップダウンメニューで、TaskAddedなどのイベントを選択して、そのイベントプロシージャをモジュールに追加します。

イベントがマクロに挿入され、イベントプロシージャにコードを追加できるようになりました。

それ以外の場合、イベントハンドラーはまったく呼び出されません。

4

1 に答える 1

3

次のような Visual Studio マクロを作成できます。

Dim WithEvents MyBuildEvents as BuildEvents

Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles MyBuildEvents.OnBuildBegin
    OpenBuildOrderOutputPane()
End Sub

Private Sub OpenBuildOrderOutputPane()
    Dim window As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput) ' Get Output Window
    Dim output As OutputWindow = CType(window.Object, OutputWindow)
    For Each pane As OutputWindowPane In output.OutputWindowPanes ' Browse panes
        If (pane.Guid = "{2032B126-7C8D-48AD-8026-0E0348004FC0}") Then ' Build Order guid
            pane.Activate()
        End If
    Next
    window.Activate()
End Sub

このコードを MyMacros の EnvironmentEvents モジュールに貼り付ける必要があります。

于 2013-01-17T10:55:18.297 に答える