我有一個C#程序的安裝項目,這個安裝項目的屬性中有一個版本。我想要生成將此版本嵌入到其中的MSI文件,以便我可以在資源管理器中將其移到資源管理器中,並查看該文件的版本。如何使用Visual Studio將文件版本嵌入到MSI文件中?
我正在使用VS2008。我怎樣才能做到這一點?
我有一個C#程序的安裝項目,這個安裝項目的屬性中有一個版本。我想要生成將此版本嵌入到其中的MSI文件,以便我可以在資源管理器中將其移到資源管理器中,並查看該文件的版本。如何使用Visual Studio將文件版本嵌入到MSI文件中?
我正在使用VS2008。我怎樣才能做到這一點?
如果簡單地將「版本:1.5.0」文本到安裝項目的Description屬性,版本號也顯示msi文件,像這樣:
我可能是錯的,但不將MSI版本跟隨在啓動項目的AssemblyInfo文件的版本?
這是一個很好的問題,但我不知道任何安裝工具可以做到這一點。此外,我從來沒有遇到過一個MSI文件,其中嵌入了文件版本資源,所以這不是一種常見的做法。通常,如果我想查找MSI文件的版本,我必須在Orca中打開它,並檢查那裏的ProductVersion屬性(屬性表)。
據我所知MSI文件永遠不會顯示版本。簡單的原因是MSI文件不是PE文件,它們是排序數據庫。 Msiexec.exe然後解釋此數據庫以執行實際安裝。您提到的版本屬性由MSI引擎在內部用於升級,卸載等,並且從不顯示。
看起來你是對的。接受直到有人證明您錯了:P – Blorgbeard 2008-09-30 01:08:44
是的,請告訴我們您的調查結果,如果有的話。我去年遇到同樣的問題:) – Vivek 2008-09-30 01:15:39
打通在文本編輯器中關聯.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:"
沒有。無論如何,不是默認的。我沒有看到這樣做的選擇。 – Blorgbeard 2008-09-30 00:24:34