0

У меня есть проект установки Windows в VB.Net (в VS 2010). ProductVersion имеет значение по умолчанию (1.0.0.0) при создании MSI.Установить ProductVersion динамически при установке msi

Теперь я хочу динамически установить ProductVersion во время установки (с помощью настраиваемого действия или что-то в этом роде), считывая из таблицы базы данных, чтобы после установки msi версия продукта, отображаемая в окне управления Windows панель или установленные свойства файла exe, является обновленной.

Заранее спасибо.

+1

Почему вы хотите сделать это? То есть в основном это выглядит как «обман» системы. Не можете ли вы просто установить ProductVersion на правильное значение при создании MSI (это обычная практика)? – Nikolay

+0

есть. но продукт должен быть динамически настроен из значения базы данных, а не вручную для каждой версии. В основном команда базы данных будет отвечать за управление версиями, а не за команду разработчиков, поэтому я подумал об этом процессе. – Avishek

+0

Вы можете добавить пользовательское действие в свой проект (.vbproj), чтобы установить эту версию при сборке (т.е. значение из «базы данных», независимо от того, что это такое, и установить его в переменную, которую вы можете использовать в файле установщика). Обратите внимание, что вы можете использовать переменные среды и свойства проекта в файле WIX. – Nikolay

ответ

1

Вы не можете этого сделать - ProductVersion - это то, что использует Windows, прежде чем он даже начнет установку. Вот почему вы иногда видите, что «еще одна версия этого продукта уже установлена». Самый простой способ для кого-то изменить ProductVersion после сборки и перед установкой - использовать скрипт для обновления ProductVersion в таблице свойств MSI. Если вы посмотрите на WiRunSQL.vbs в SDK для набора Windows и знаете, как использовать SQL, чтобы это сделать. Вам нужно будет обновить Property.ProductVersion. Docs здесь со ссылкой на примеры:

https://msdn.microsoft.com/en-us/library/aa372021(v=vs.85).aspx