下载MSBuild 社区任务并安装它。
打开您的 .csproj 并在最后(在关闭</project>
标记之前)
粘贴以下代码(不要更改<Import>
标签):
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
标记后<Import>
粘贴以下内容:
<Target Name="BeforeBuild">
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(ProgramFiles)\TortoiseSVN\bin">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnVersion>
<FileUpdate Files="Properties\AssemblyInfo.cs" Regex="(\d+)\.(\d+)\.(\d+)\.(\d+)" ReplacementText="$1.$2.$3.$(Revision)" />
</Target>
查看 SvnVersion 标记内的 Attribute ToolPath,您必须在其中确定机器中svnversion.exe二进制文件的位置。
假设您安装了 TortoiseSVN 软件,它的路径是:C:\ProgramFiles\TortoiseSVN\bin\
您也可以使用 VisualSVN 二进制文件(在这种情况下,二进制文件位于C:\ProgramFiles\VisualSVN\bin\
)
在您的 .csproj 中进行此修改后,在每个构建项目中,MSBuild 将首先调用 svnversion.exe(带有参数,当前解决方案目录),并且 svnversion 将返回该存储库的修订号。在 FileUpdate 标记中,MSBuild 将查找正则表达式模式,然后替换为 Major、Minor 和 Build 的当前值(分别为 $1、$2 和 $3),并使用变量 Revision 值更新 Revision