我使用MSBuild Community Task library来得到当前SVN版本的集合,在我的程序集信息文件获得最终编译的.dll文件的修订来设置基于.NET的DLL的SVN版本号。如何使用的MSBuild社区任务库正确
正如你所知,SVN版本可以像“28”或“28M” - 如果有修改。如果我做了一个MSBuild消息并输出版本属性,我看到我得到了修改后的28M,但在更新AsseblyInfo时,我一直只获得28版本号..?
我想有版本号的28M指示DLL使用修改非检查建成。我怎样才能做到这一点?
<Target Name="Compile">
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(SvnTool)">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnVersion>
<ItemGroup>
<AssemblyInfoFiles Include="x.a\Properties\AssemblyInfo.cs" />
<AssemblyInfoFiles Include="x.b\Properties\AssemblyInfo.cs" />
</ItemGroup>
<FileUpdate Files="@(AssemblyInfoFiles)"
Regex="(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="$(MajorVersion).$(MinorVersion).$(Revision).0" />
<MSBuild Projects="$(MSBuildProjectDirectory)\ConfigExplorer.sln" Targets="Rebuild" Properties="Configuration=$(BuildType);" />
因为修订声明为'版本类int'你不能有28M的版本号:'public int Revision {get; }'。但是,您可以使用AssemblyInformationalVersionAttribute属性来代替您喜欢的任何文本。 –