我不熟悉Win 8应用程序,但设置程序集版本应该与正常.Net相同。我们每次都在我们的版本中设置版本,而版本与用于版本的实际变更集相同。这样,如果有人在Project Collection中检入任何东西,它将自动增加。 第一步是让变更号码,并设置其它版本:
<PropertyGroup>
<incMajorVersion>6</incMajorVersion>
<incMinorVersion>1</incMinorVersion>
<incBuildNumber>3</incBuildNumber>
<incRevision>$(SourceGetVersion.Replace("C",""))</incRevision>
</PropertyGroup>
下一步就是要找到汇编文件,并修改版本,到指定的。为此,从Extensionpack使用MSBuild任务(http://www.msbuildextensionpack.com/help/4.0.5.0/Index.html)。现在我们必须导入任务文件,找到汇编文件并更改它们。这需要在发生任何事情之前完成,因此我们覆盖AfterGet目标:
<Import Project="C:\Program Files (x86)\MSBuild\ExtensionPack\4.0\MSBuild.ExtensionPack.tasks"/>
<Target Name="AfterGet" DependsOnTargets="$(AfterGetDependsOn)">
<ItemGroup>
<AssemblyInfoFiles Include="$(BuildDirectory)\**\AssemblyInfo.cs"/>
</ItemGroup>
<MSBuild.ExtensionPack.Framework.AssemblyInfo
AssemblyInfoFiles="@(AssemblyInfoFiles)"
AssemblyMajorVersion="$(incMajorVersion)"
AssemblyMinorVersion="$(incMinorVersion)"
AssemblyBuildNumber="$(incBuildNumber)"
AssemblyRevision="$(incRevision)"
AssemblyFileMajorVersion="$(incMajorVersion)"
AssemblyFileMinorVersion="$(incMinorVersion)"
AssemblyFileBuildNumber="$(incBuildNumber)"
AssemblyFileRevision="$(incRevision)" />
</Target>
现在输出文件应该有您定义的版本号。
noob问题:在哪个文件中给你指定这个? – sLedgem
您需要在MSBuild项目文件(例如TFSBuild.proj)中定义它。我不使用这些XAML样式的构建过程,但是如果使用它们,则应该可以在get后面插入execute命令,该命令使用AssemblyUpdate调用MSBuild。 – MikeR
不幸的是,软件包版本与程序集版本完全分开:(。WinRT应用程序有两个版本,这是迟缓的,而对于Windows存储和安装目的,所有它关心的是软件包版本而不是程序集版本。版本化我们的非Winrt应用程序,所以谢谢! – KallDrexx