pubxml web 發布工具 事件生命週期
我正在使用 Visual Studio 2012 中的 Web 發布工具發佈到文件系統。我了解到我可以在 Properties 文件夾中打開我的 *.pubxml 來做更高級的事情。
我想要做的是在發布任務結束時執行命令行應用程序。我通常會在自定義目標中執行它,並在這樣的事件中建構之一之後執行它。
<Target Name="CustomAfterPublish" AfterTargets="GatherAllFilesToPublish"> </Target>問題是這
GatherAllFilesToPublish太早了,因為我想在發布完成後最後執行它。是否有一個列表或者是否有人知道內置事件以及它們被觸發的順序?基本上是文件系統網路發布的事件生命週期。或者我如何在最後手動觸發目標?
我嘗試了以下但沒有成功:
<Target Name="Msg" AfterTargets="PipelineDeployPhase;MSDeployPublish;Package">而且每個人都是單獨的。那麼發布生命週期的最後一個鉤子是什麼?
—> 已編輯我已經添加了跟踪。問題是文件被複製到臨時路徑,然後所有文件都被刪除。
"GatherAllFilesToPublish"因此,在此處從命令行視窗查看我的跟踪後,複製到目標將不起作用…1>------ Build started: Project: Dependency of a project: Release Any CPU ------ 2>------ Build started: Project: Dependency of another project, Configuration: Release Any CPU ------ 3>------ Build started: Project: Web, Configuration: Release Any CPU ------ 4>------ Publish started: Project: Web, Configuration: Release Any CPU ------ 4>Transformed Web.config using C:\...\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config. 4>Copying all files to temporary location below for package/publish: 4>obj\Release\Package\PackageTmp. **<------------- Here is the place where my excutable is called ---------------------------------** 4>Deleting existing files... 4>Publishing folder /... 4>Publishing folder App_Browsers... 4>Publishing folder App_Themes... 4>Publishing folder bin... 4>Site was published successfully file:///C:/Test 4> ========== Build: 3 succeeded, 0 failed, 1 up-to-date, 0 skipped ========== ========== Publish: 1 succeeded, 0 failed, 0 skipped ==========謝謝你的幫助。
據我所知
GatherAllFilesToPublish,這是最後一個可用的事件。但是,根據您的要求,您可能仍然可以使用此事件。您可以將寫入到以下位置的中間文件作為目標,而不是對最終發布位置的文件執行操作(其中 ProjectDir 顯然是您的項目的文件夾)
/ProjectDir/obj/Release/Package/PackageTmp/
似乎 Visual Studio 直接複製了該目錄中的所有文件。所以,當你連接到這個目錄時
GatherAllFilesToPublish,你應該能夠對這個目錄中的文件進行任何更改,它們將反映在最終的發布位置。相關資訊
如果您想驗證這
GatherAllFilesToPublish確實是最後一個事件,您可以通過啟用診斷建構輸出自己執行此操作。工具 -> 選項 -> 項目和解決方案 -> 建構和執行 -> MSBuild 項目建構輸出詳細程度 -> 診斷
建構項目並蒐索Done building target “GatherAllFilesToPublish”,對我來說,這是它開始將文件複製到發布位置之前的最後一個觸發器。