我不知道很多關於MSBuild的,但在C#中使用Visual Studio中的MSBuild項目的情況下,有一個頭腦簡單的替代方案:使用構建後生成事件而不是AfterBuild目標。
您可以通過Visual Studio項目屬性對話框中設置了一個生成後生成事件,第三個選項卡「生成事件」上。對於某些情況,在此對話框中輸入一些命令可能是一種想法,然後在確定它如何工作後,直接編輯.csproj文件。
記住選擇「運行這個生成後事件:當構建更新項目輸出」對話框上 - 這是敲門磚由OP請求的功能。
就像我說的,我不知道很多關於MSBuild的,它可能是生成後生成事件並不適用於某些事情的AfterBuild目標可以做。但我用它來複制文件和運行BAT腳本,並且它工作正常。
編輯:
我將添加有關如何我通常使用後建在我的C#項目事件的幾個注意事項。
爲了分離不同的功能區域,我通常創建一個名爲PostBuildEvent.bat一個BAT腳本,並將其放置在同一文件夾中的.csproj文件。然後我生成後事件只包含兩行:
cd $(ProjectDir)
PostBuildEvent.bat
然後我把我想在PostBuildEvent.bat文件中的命令。下面是一個例子:請記住,要從BAT腳本中調用BAT腳本,請明確指定「call」。還要注意使用「暫停」 - 這可以通過雙擊BAT文件來測試腳本,然後您可以在cmd窗口中看到任何錯誤消息。當腳本通過MSBuild運行時,「暫停」將被忽略。
似乎更新「RebuildDependsOn」目標只會導致額外的步驟觸發,如果您明確調用「重建」目標。如果你調用「Build」,他們不會觸發。 – 2009-12-23 15:09:07