これに対する答えをまだ探している場合は、これを試してください。
パブリッシュ イベントに結び付け、プッシュが成功したら外部コマンドを呼び出します。ソリューションをビルドしてから MSpec テスト ランナーを起動することで、同様のことを行っています (ブログ投稿)。
これを行うには、PublishEvents_OnPublishDone のフックを追加する必要があります。これを行うには、EnvironmentEvents モジュールに移動し、次を追加します。
<System.contextStaticAttribute()> Public WithEvents PublishEvents As EnvDTE80.PublishEvents
Private Sub PublishEvents_OnPublishDone(ByVal Success As Boolean) Handles PublishEvents.OnPublishDone
'call custom module sub here.
End Sub
外部コマンドのみを実行したい場合は、次のようにすることがあります。次のようにマクロを作成します。
Public runExternalCommandOnComplete As Boolean = False
Sub PublishAndRunExternalCommand()
DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
DTE.ActiveWindow.Object.GetItem("04 - Products\04 - Products.WSS").Select(vsUISelectionType.vsUISelectionTypeSelect)
DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.Publish")
runExternalCommandOnComplete = True
End Sub
次に、EnvironmentEvents にこれを追加します: (注: CustomMacros は、上記のコードを配置したモジュールの名前です)
<System.contextStaticAttribute()> Public WithEvents PublishEvents As EnvDTE80.PublishEvents
Private Sub PublishEvents_OnPublishDone(ByVal Success As Boolean) Handles PublishEvents.OnPublishDone
CustomMacros.runExternalCommandOnComplete = False
'Where ExternalCommand1 matches the command you want to run
DTE.ExecuteCommand("Tools.ExternalCommand1")
End Sub
それはそれを行う必要があります。