嘿,夥計們,如果你還在尋找一個答案,這一個嘗試。
綁定到發佈事件併成功推送您的外部命令。我正在構建解決方案,然後開始MSpec測試運行器(blog post)做類似的事情。
爲此,您需要爲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
。
乾杯,
凱爾
我也在尋找一個答案。我希望能夠在宏中同時運行一系列ExecuteCommand語句。 – 2009-08-20 14:28:55
不幸的是,我仍然不知道解決方案:( – TcKs 2009-08-20 16:08:26