Вы можете передать версию скрипту MSBuild для вашего проекта установки так же, как вы можете передать скрипт сборки приложения.
Например, если ваша система CI определяет переменные AppVersion
и BuildNumber
и передает их в ваши скрипты MSBuild, ваш wixproj может создать соответствующее Version
свойство, которое он передает в Wix следующим образом:
<PropertyGroup>
<Version Condition=" '$(BuildNumber)' == '' ">0.0.1</Version>
<Version Condition=" '$(BuildNumber)' != '' ">$(AppVersion).$(BuildNumber)</Version>
<DefineConstants>Version=$(Version)</DefineConstants>
</PropertyGroup>
Первое определение Version
предоставляет значение по умолчанию, когда вы строите локально. Чем бы это ни закончилось, оно становится Version
переменной в Wix. Используйте его в файле wsx следующим образом:
<Product Version="$(var.Version)" ...>
<Package Description="$(var.ProductName) $(var.Version): $(var.ProductDescription)" ... />
Мне нравится включать версию в описание, чтобы ее можно было легко найти в проводнике (как столбец в подробном представлении или на странице свойств) независимо от имени файла.
Передача версии в качестве переменной дает вам больше контроля, чем чтение ее из файла. Когда вы читаете из файла, вы получаете все 4 части программной версии. Однако ProductVersion предназначен только для использования первых 3 частей.