Получение сборочной версии WPF - PullRequest
0 голосов
/ 23 января 2020

У меня есть программа, для которой я только что создал установщик с помощью wix, и я сейчас пытаюсь получить версию сборки моей программы, где в учебнике я смотрю на нас GetAssemblyIdentity, но где я не вижу, как я должен делать это для своих Приложение Quz это не консольное приложение! учебник, на который я смотрю, это https://www.youtube.com/watch?v=6Yf-eDsRrnM, и на отметке времени 1 ч 28 мин он начинает смотреть на версии сборки и как получить их для вашего установщика, но я не совсем понимаю, как это сделать с помощью wpf приложение. На данный момент я пробовал

<Target Name="BeforeBuild">
<GetAssemblyIdentity AssemblyFiles="..\WPFAPP\bin\$(C)">


</GetAssemblyIdentity>

</Target>
<Target Name="AfterBuild">

WPFAPP - это заполнитель для моего приложения.

1 Ответ

0 голосов
/ 23 января 2020

ПЕРВОЕ РЕШЕНИЕ:

Вы можете использовать $ (MSBuildProjectName) Итак, укажите

<TargetName>$(ProjectName)</TargetName>

В вашем * .csproj

А затем Вы можете использовать $ (MSBuildProjectName) в качестве имени сборки. Чтобы получить доступ к этой переменной, вы должны написать в wixproj

<Target Name="BeforeBuild">
  <PropertyGroup>
    <DefineConstants>ProjectName=%(MSBuildProjectName)</DefineConstants>
  </PropertyGroup>
</Target>

Список доступных переменных, которые вы можете увидеть здесь

https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-reserved-and-well-known-properties?view=vs-2019

ВТОРОЕ РЕШЕНИЕ:

Итак, если вы хотите использовать версии. См. Пример здесь.

<Target Name="BeforeBuild">
  <GetAssemblyIdentity AssemblyFiles="..\MyApp\bin\$(Configuration)\MyApp.exe">
    <Output TaskParameter="Assemblies" ItemName="AssemblyVersion" />
  </GetAssemblyIdentity>
  <PropertyGroup>
    <DefineConstants>BuildVersion=%(AssemblyVersion.Version)</DefineConstants>
  </PropertyGroup>
</Target>

Вы должны указать файл сборки (файлы dll и exe - это файлы. Net, и здесь также можно указать файл .exe).

Тогда вы можно использовать BuildVersionVariable, как здесь:

<Product Id="*" 
         Name="WixProject1" 
         Language="1033" 
         Version="$(var.BuildVersion)" 
         Manufacturer="WixProject1" 
         UpgradeCode="c93e09b9-9e8f-444c-a35b-84beb2c3788f">
...
</Product>

ps. Вы можете комбинировать этот подход и получать некоторую информацию из одного пути и некоторую информацию из другого. Основная IDEA для определения констант в файле проекта и последующего доступа к нему из WIX

...