Как получить текущую версию сборки проекта wpf в проекте начальной загрузки wix toolset? - PullRequest
0 голосов
/ 06 марта 2020

У меня есть проект wpf, для которого программа установки создана в проекте установки wix. Проект установки wix скомпилирован для получения MSI. .Exe генерируется из MSI-файла с помощью проекта начальной загрузки wix. Теперь мой вопрос заключается в том, как получить версию сборки [Assembly: AssemblyFileVersion ("xxxxx")] из файла wpf .cs?

1 Ответ

1 голос
/ 09 марта 2020

Энди прав, вы не сможете извлечь номер версии из файла .cs, поскольку WiX не компилируется или не знает, что делать с кодом C#.

Что вы хотите сделать является версией вашего основного исполняемого файла (предположительно, приложения .csproj) с использованием свойств версии сборки. (Их можно найти в свойствах проекта)

1) В Product.wxs добавить указанный основной исполняемый файл в виде файла в установщик.

<Component Id='MainExecutable' Guid='*'>
    <File Id='MainExe' Name='MainExe.exe' Source='Path-to-exe' KeyPath='yes' /> 
</Component>

2 ) Привязать версию MSI к этому основному исполняемому файлу. Это делается в атрибуте Version элемента Product .

<Product Id="*" Name="My Product Name" Language="1033" Version="!(bind.FileVersion.MainExe)" Manufacturer="Debabrata" UpgradeCode="PUT-GUID-HERE">

Не то, что значение после FileVersion является идентификатором вашего файла. Это важно.

Теперь, чтобы использовать этот номер версии в проекте начальной загрузки - процесс очень похож.

1) Добавьте MSI к загрузчику.

<MsiPackage SourceFile="Path-to-msi" Id="MyMSI"> 

2) В атрибуте Version элемента Bundle привязка должна быть .

<Bundle Name="My Bundle" Version="!(bind.packageVersion.MyMSI)">

Снова обратите внимание на совпадение идентификатора.

Надеюсь, это поможет!

...