Xin chào các bạn, nếu bạn vẫn đang tìm câu trả lời cho câu trả lời này, hãy thử.
Gắn vào các sự kiện xuất bản và trên một cuộc gọi push thành công, hãy gọi lệnh bên ngoài của bạn. Tôi đang làm một điều tương tự với việc xây dựng các giải pháp và sau đó bắn các Á hậu thử nghiệm MSpec (blog post).
Để thực hiện việc này, bạn cần phải thêm vào móc cho PublishEvents_OnPublishDone. Thực hiện việc này bằng cách chuyển đến Mô-đun EnvironmentEvents và thêm vào các nội dung sau:
<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
Nếu bạn chỉ muốn chạy lệnh bên ngoài đôi khi làm điều gì đó như thế này. Tạo macro của bạn như thế này:
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
Sau đó, trong EnvironmentEvents thêm thế này: (Lưu ý: CustomMacros là tên của module, nơi bạn đặt đoạn mã trên)
<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
Điều đó sẽ làm điều đó.
Chúc mừng,
Kyle
Nguồn
2009-10-06 02:35:24
Tôi cũng đang tìm kiếm một câu trả lời cho điều này. Tôi muốn có thể chạy một loạt các câu lệnh ExecuteCommand trong macro, nhưng đồng bộ. –
Thật không may tôi không biết một giải pháp: ( – TcKs