sharp 如何使用Visual Studio將文件版本嵌入到MSI文件中?



asp net vs c# (4)

在文本編輯器中打開關聯的.vdproj文件。 查找“產品”部分,然後修改“ProductVersion”和“製造商”字段。

 "Product"
    {
    "Name" = "8:Microsoft Visual Studio"
    "ProductName" = "8:tidAxCleanupScript"
    "ProductCode" = "8:{0949AAAD-2C29-415E-851C-825C74C9CA81}"
    "PackageCode" = "8:{8F012EF1-D5D0-43DC-BBFD-761A639DDB07}"
    "UpgradeCode" = "8:{38DE1949-0782-4EF3-BDC2-080EB5B73EF8}"
    "RestartWWWService" = "11:FALSE"
    "RemovePreviousVersions" = "11:TRUE"
    "DetectNewerInstalledVersion" = "11:TRUE"
    "InstallAllUsers" = "11:FALSE"
    "ProductVersion" = "8:**1.5.0**"
    "Manufacturer" = "8:**Default Company Name**"
    "ARPHELPTELEPHONE" = "8:"

我有一個C#程序的安裝項目,這個安裝項目的屬性中有一個版本。 我想生成的MSI文件中嵌入了這個版本,所以我可以在資源管理器中將鼠標移到該文件上,並查看該文件的版本。

我正在使用VS2008。 我怎樣才能做到這一點?


Answer #1

這是一個很好的問題,但我不知道任何設置工具可以做到這一點。 而且我從來沒有遇到一個嵌入了文件版本資源的MSI文件,所以這是不常見的做法。 通常,如果我想找出一個MSI文件的版本,我必須在Orca中打開它,並在那裡檢查ProductVersion屬性(在屬性表中)。


Answer #2

如果您只需將“版本:1.5.0”文本添加到安裝項目的“描述”屬性中,則版本號也會顯示在MSI文件中,如下所示:

http://screencast.com/t/A499i6jS


Answer #3

據我所知MSI文件永遠不會顯示版本。 簡單的原因是MSI文件不是PE文件,它們是排序數據庫。 Msiexec.exe然後解釋這個數據庫來做實際的安裝。 您提到的版本屬性被MSI引擎內部用於升級,卸載等,永遠不會顯示。





versioning