UWP .appx 文件命名

UWP .appx file naming

我正在构建一个 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>

很好,我可以 运行 带有 /p:BUILD_NUMBER=1.2.3.4 参数的 msbuild,但这仅反映在 AssemblyInfo.cs 文件中。 .appx 文件将被命名为 MyApplication.Core_1.0.0.0_x86_Test.appx 而不是 MyApplication.Core_1.2.3.4_x86_Test.appx

如何使用 BUILD_NUMBER 信息反​​映在 .appx 文件名中?

.appx 文件名中的版本号不是由 AssemblyInfo 设置的。此版本号称为 Package version number,它在 Package/Identity 元素的 Version 属性中设置为一个值应用清单如下:

<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 后,您将获得名为 MyUWPApp_1.2.3.0_x86.appx.

除此之外,我们通常会在 creating an app package 时更改软件包版本号。这可以通过 Microsoft Visual Studio 向导完成,如下所示:
(来源:s-msft.com