2
我知道您可以在項目級別具有事前和事後構建事件,但是我希望在解決方案構建的開始和結束時停止並啓動服務 - 即當我做一個「構建解決方案」服務停止,構建的最後一個動作是重新啓動服務。VS 2008中的解決方案級別構建事件
解決方案屬性頁面上沒有生成事件,所以我該怎麼做?
我猜我可以將任務添加到msbuild文件,但我恐怕不明白VS和msbuild之間的關係。 VS會用SLN文件執行msbuild嗎?
我知道您可以在項目級別具有事前和事後構建事件,但是我希望在解決方案構建的開始和結束時停止並啓動服務 - 即當我做一個「構建解決方案」服務停止,構建的最後一個動作是重新啓動服務。VS 2008中的解決方案級別構建事件
解決方案屬性頁面上沒有生成事件,所以我該怎麼做?
我猜我可以將任務添加到msbuild文件,但我恐怕不明白VS和msbuild之間的關係。 VS會用SLN文件執行msbuild嗎?
我寫了一個宏爲我自己的項目,我需要這個確切的功能:
您可以編寫一個宏,這是否適合你。進入工具 - >宏IDE
一旦那裏,EnvironmentEvents模塊上雙擊並添加以下代碼:
Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
If (Scope = EnvDTE.vsBuildScope.vsBuildScopeSolution)
//Do whatever solution independent stuff you need here.
If(DTE.Solution.FullName = "C:\My Solutions\Solution1.sln")
//Do whatever you need for Solution1.sln here.
End If
End If
End Sub
Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
If (Scope = EnvDTE.vsBuildScope.vsBuildScopeSolution)
//Do whatever solution independent stuff you need here.
If(DTE.Solution.FullName = "C:\My Solutions\Solution1.sln")
//Do whatever you need for Solution1.sln here.
End If
End If
End Sub
這看起來像它的解決方案獨立。如果我構建*任何*解決方案將會觸發 - 我說得對嗎? – nickd
我修改了代碼,允許您根據解決方案的完整路徑執行解決方案相關邏輯。請記住,1)我不是宏的主人,只是一個初學者,2)我需要使用宏,因爲我不能使用MSBuild。 –
我曾希望有一種解決方案,可以將它與.sln綁定,以便所有開發人員都可以將其作爲構建的一部分進行提取。這似乎不可能,所以我很樂意使用這種方法。 – nickd