Как получить версию продукта MSI программно в C # - PullRequest
2 голосов
/ 06 мая 2010

Доступна ли версия продукта MSI для приложения?

Я пытался, Assembly.GetExecutingAssembly (). GetName (). Версия, но это дает мне версию сборки, которая отличается от того, что я хочу. Я могу редактировать это значение в соответствующем месте, но было бы удобно, если бы я мог просто показать номер версии из установщика MSI.

Другой момент заключается в том, что номер версии MSI состоит из 3 частей, каждая из которых разделена символом «.», Например 1.0.3, где номер сборки состоит из 4 частей, например, 1.0.2.4.

Из этого я заключаю, что мы должны обновлять эти значения отдельно, и у них нет возможности их синхронизировать.

Правильно ли мое понимание?

1 Ответ

3 голосов
/ 06 мая 2010

Для MSI разрешено иметь четыре части, указанные для его версии, хотя он будет сравнивать только первые три (что может вызвать путаницу при попытке незначительного обновления с обновлениями только в четвертой части). Таким образом, вы, безусловно, можете синхронизировать свои числа в каком-то сценарии сборки, если ваше решение для инсталлятора поддерживает сценарии.

Что касается отображения версии MSI из вашего приложения, вам необходимо знать GUID ProductCode, чтобы вы могли использовать API MSI для поиска его версии. В качестве альтернативы вы можете написать запись реестра, содержащую версию в более стабильном месте, и прочитать ее в своем приложении.

...