UWP .appx именование файлов

Я создаю приложение UWP и хочу, чтобы сгенерированный пакет получил имя с номером сборки, чтобы различать сборки. Пока у меня есть эта конфигурация в файле csproj:

  <Target Name="BeforeBuild">
    <Message Text="Updating AssemblyInfo to Version $(VersionNumber)"></Message>
    <Message Text="Writing to AssemblyInfo files in $(SolutionRoot)"></Message>

    <AssemblyInfo CodeLanguage="CS"
             AssemblyCompany="Company"
             AssemblyProduct="Product"
             AssemblyCopyright="Copyright © Company 2011"
             ComVisible="true"
             AssemblyVersion="$(BUILD_NUMBER)"
             AssemblyFileVersion="$(BUILD_NUMBER)" />   
  </Target>

Все хорошо, я могу запустить msbuild с /p:BUILD_NUMBER=1.2.3.4 аргумент, но это только отражает в AssemblyInfo.cs файл. Файл.appx будет назван как MyApplication.Core_1.0.0.0_x86_Test.appx и не MyApplication.Core_1.2.3.4_x86_Test.appx

Как я могу использовать информацию BUILD_NUMBER, которая будет отражена в имени файла.appx?

1 ответ

Решение

Номер версии в имени файла.appx не устанавливается AssemblyInfo, Этот номер версии называется номером версии пакета, который устанавливается в качестве значения в атрибуте Version элемента Package/Identity в манифесте приложения, например:

<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap mp">
  <Identity Name="e12578ad-9b81-44bb-8651-0b58e44e71b8" Publisher="CN=Jay Zuo" Version="1.2.3.0" />
  ...
</Package>

После того, как вы изменили атрибут Version и затем запустили MSBuild, вы получите файл.appx с именем вроде MyUWPApp_1.2.3.0_x86.appx,

Кроме того, мы обычно меняем номер версии пакета при создании пакета приложения. Это можно сделать с помощью мастера Microsoft Visual Studio следующим образом:

Другие вопросы по тегам