2012-01-05 61 views

回答

1

所有VS項目基本上都是文本文件,所以理論上你可以做你想做的,但也許不是從VS內部。

您將需要更改項目的ProductVersion屬性。在文本文件中,查找包含類似下面一行:

 "ProductVersion" = "8:1.0.1001" 

的「1.0.1001」部分應該是無論你的當前版本。 8:似乎是一個類型標識符;我猜想8代表一個字符串。

當您更新ProductVersion時,您還應該更新ProductCode。這只是一個GUID,所以你可以簡單地生成和ToString()一個新的隨機GUID。如果您希望安裝程序找到您的程序的先前版本並將其刪除,請勿觸摸UpgradeCode。

這完全可以用一個簡單的.NET程序來完成。將它集成到VS構建中是比較棘手的,因爲安裝項目不像其他構建項目那樣是MSBuild腳本,所以你無法直接從安裝項目中訪問MSBuild中的各種自定義構建邏輯工具。您可以將您的主項目的MSBuild腳本設置爲包含構建任務,以便在構建時更新安裝項目版本。您還可以設置後期製作操作。

0

下面是一個腳本文件的示例,您可以使用該腳本文件來增加從安裝項目的PreBuild事件調用它的版本號。 (http://www.codeproject.com/Articles/22256/NewSetupVersion-for-MSI-Projects

閱讀amthog在評論中提出的問題。在腳本運行之後,項目沒有重新加載,但在構建之前可能會導致頭痛。我有一個後期構建事件,由於在構建事件運行時尚未重新加載的「外部」(通過此腳本)所做的更改現在已失敗。

如果這不涉及你,這個腳本似乎運作良好。