Как встроить версию файла в файл MSI с помощью Visual Studio? - PullRequest
2 голосов
/ 30 сентября 2008

У меня есть проект установки для моей программы на C #, и этот проект установки имеет версию в своих свойствах. Я хотел бы, чтобы в генерируемом файле MSI была встроена эта версия, поэтому я могу навести на него курсор мыши в проводнике и посмотреть, какая версия файла.

Я использую VS2008. Как я могу это сделать?

Ответы [ 5 ]

6 голосов
/ 30 сентября 2008

Если вы просто добавите текст «Version: 1.5.0» в свойство Description проекта установки, номер версии также отобразится в файле MSI следующим образом:

http://screencast.com/t/A499i6jS

1 голос
/ 19 июля 2011

Откройте связанный файл .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:"
1 голос
/ 30 сентября 2008

Это хороший вопрос, но я не знаю какого-либо установочного инструмента, который мог бы это сделать. Более того, я никогда не встречал MSI-файл со встроенной в него версией файла resource , так что это не обычная практика. Обычно, если я хочу узнать версию файла MSI, я должен открыть его в Orca и проверить там свойство ProductVersion (в таблице свойств).

1 голос
/ 30 сентября 2008

Насколько я знаю, MSI-файл никогда не будет показывать версию. Простая причина в том, что файлы MSI не являются файлами PE, они являются своего рода базой данных. Msiexec.exe затем интерпретирует эту базу данных для фактической установки. Упомянутое вами свойство версии используется ядром MSI для обновления, удаления и т. Д. И никогда не отображается.

0 голосов
/ 30 сентября 2008

Я могу ошибаться, но разве версия MSI не соответствует версии в файле AssemblyInfo вашего запускаемого проекта?

...