[英]Help with one step build all projects + installer (.NET + WiX)
我在安裝程序上有預構建事件,以使用適當的配置等重建項目。
如果我在 Visual Studio 中的 WiX (3.0) 項目上右鍵單擊構建/重建,一切都可以正常構建,但是如果我嘗試在 wixproj 文件上運行 MSBuild,則預構建事件將引發錯誤。
我可以改為在 wixproj 上調用 Candle 和 Light,但它不會運行預構建事件。
預構建事件依賴於 VS 提供的宏,除了創建另一個項目之外,我不知道如何解決這個問題,並且基本上只使用項目的預構建事件,它只是尖叫 hack。
另一個問題是我需要從命令行將自我更新的版本號輸入 WiX。
我打算只使用 csproj 來處理版本號並更新它,然后只對 MSBuild 和 Candle 和 Light 進行脫殼,但問題是我不知道如何從硬編碼以外的代碼訪問解決方案目錄它在
我們發現使用實用程序來編輯項目本身並在使用自動構建器(在我們的示例中為VisualBuild )構建之前轉儲所有預構建和構建后事件是最簡單的。
這給我們留下了一個漂亮而多汁的構建過程,它不依賴於 IDE 中的任何討厭的黑客,並讓我們完全控制源的來源和構建的組件的去向。
我正在使用一種對我來說效果很好的不同方式,我在此處進行了描述。
%VersionNumber%
的環境變量中有版本號) ,然后執行一個MSBuild 項目文件.csproj
文件中.exe 的版本號(如果它存在)(然后我使用MSBuild Community Tasks創建一個帶有版本號的AssemblyInfo
文件在預構建事件中)candle
和light
來構建實際設置。candle
使用這個.wxs
文件來創建設置,我再次從環境變量中獲取版本號: $(env.VersionNumber)
light
創建的最終.msi
文件在其文件名中包含版本號,因為我將文件名(包括帶有版本號的環境變量)作為參數傳遞: -out release\\msi\\bitbucket-backup-%VersionNumber%.msi
一開始我花了一段時間才弄清楚這一切,但現在我以類似的方式發布了我所有的項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.