我正在构build一个UWP应用程序,我想要生成的软件包以内部版本号来命名,以区分版本。 到目前为止,我在csproj文件中有这个configuration:
<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 / 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
的.appx文件。
除此之外,我们通常在创建应用程序包时更改包版本号。 这可以通过Microsoft Visual Studio向导完成,如下所示: