已經有一段時間尋找一個解決方案我自己,我突然想到,我想出了最後一個居然是如此簡單:
- Slow Cheetah基於選擇的構建轉化配置文件配置(例如調試/發佈)
- 每個構建配置的屬性組以及項目文件中特定的一次性項目屬性(例如ProductName和AssemblyName(用於並行安裝測試和產品版本),InstallUrl)。
- 執行/目標時指定附加屬性(比如ApplicationVersion,MinimumRequiredVersion)通過的msbuild:發佈
沒有必要複製任何配置文件手動慢獵豹將處理此。點擊一次包將在相應的構建配置的輸出文件夾中創建(例如bin/Debug或任何你所擁有的)。
的最大優點是,構建爲使用Visual Studio相同或自動構建使用的msbuild(除了完全是可選的一些額外的屬性)。所有你需要做的添加額外的環境到你的構建是創建新的構建配置和相應緩慢的獵豹轉換和項目文件中的屬性組。
整個安裝與.NET 3.5(不能談論早期版本),後來至少工作。
也許這對任何人都有幫助。隨意詢問詳情。
PS:屬性組看起來像這樣(把它們定義了默認的ClickOnce設置在第一組後):
<PropertyGroup Condition=" '$(Configuration)' == 'Demo' ">
<AssemblyName>Com.MyApplication.Main.Demo</AssemblyName>
<InstallUrl>http://demoserver/myapp/</InstallUrl>
<ProductName>My Application %28Demo%29</ProductName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Test' ">
<AssemblyName>Com.MyApplication.Main.Test</AssemblyName>
<InstallUrl>http://testserver/myapp/</InstallUrl>
<ProductName>My Application %28Test%29</ProductName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Prod' ">
<AssemblyName>Com.MyApplication.Main</AssemblyName>
<InstallUrl>http://prodserver/myapp/</InstallUrl>
<ProductName>My Application</ProductName>
</PropertyGroup>
我不知道這個時候發佈清單仍然會指將工作到原始服務器?你不能手動編輯清單文件,因爲它沒有簽名? – MickyD 2014-03-31 06:23:32