Как сделать версию WiX Bundle той же, что и моя версия приложения

Атрибут "Версия" в пакете WiX отображается в "Программы и функции". Поэтому это должно быть таким же, как мой фактический номер версии приложения, верно?

В предположении, что они должны быть одинаковыми, не представляется очевидным, как автоматически обновлять это обновление. У меня есть MSI, делающий это как этот вопрос, но не Бит Bundle/Bootstrapper. Как я могу сделать пакет Bootstrapper Bundle одним и тем же и прочитать номер версии MSI?

Ответы

Ответ 1

Чтобы ответить на ваш первый вопрос, для этого нет жестких и быстрых правил. Поэтому не обязательно обновлять версию пакета WIX и соответствовать этой версии MSI.

Что касается второго вопроса, я не уверен. Но вы можете попробовать эту переменную связующего:

!(bind.packageVersion.PackageID) 

ИЗМЕНИТЬ замените PackageID атрибутом элемента "ID" программы, которую вы устанавливаете. Что-то вроде: Version="!(bind.packageVersion.MyAppName)"

<MsiPackage SourceFile="SomePath\MyAppName.msi" Id="MyAppName"/>

как указано в этом POST. Также проверьте документацию WIX для получения дополнительных переменных связующего.

РЕДАКТИРОВАТЬ 5/11/2017 - похоже, что возникла путаница в отношении того, каким должен быть идентификатор packageID, и я отредактировал ответ на основе ответа Боба Лутца ниже.

Ответ 2

Чтобы дополнить ответ Isaiah4110 (я еще не могу прокомментировать, и мое редактирование было отклонено):

Идентификатор PackageID исходит из значения Id для одного из типов пакетов (например, MsiPackage, ExePackage...) в вашей цепочке. Поэтому для ссылки на номер версии <MsiPackage SourceFile="SomePath\MyMsi.msi" Id="MyMsi"/> вы бы использовали! (bind.packageVersion.MyMsi).

Если у вас нет идентификатора (например, я), вам нужно будет определить его.