我使用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屬性來代替您喜歡的任何文本。 –