我正在尝试使用SVN修订号标记我的make项目构建。
我正在使用MsBuildTask更新AssemblyVersionFile详细信息。
我使用以下BuildScript获取信息,但是当SVNVersion.exe返回Unversioned Directory时,返回-1,如何更新SVNVersion.exe
<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>
答案 0 :(得分:0)
您必须不更新 svnversion(因为您认为更新是解决方案的原因),但是为了获得结果,请使用正确的工作字符串**来运行svnversion。
阅读svnversion --help
,注意命令行格式
svnversion [OPTIONS] [WC_PATH [TRAIL_URL]]
和评论
如果WC_PATH是无版本路径,程序将输出 'Unversioned directory'或'Unversioned file'。
即 - 为任务构建命令行,检查需要你的版本化目录,而不是一些奇怪的非WC位置
答案 1 :(得分:0)
这是因为您使用的是旧版本的svnversion。
尝试打开命令行提示符,导航到svnversion目录并执行与MSBuild相同的工作。
CMD:
cd C:\ProgramFiles\TortoiseSVN\bin [ENTER] svnversion C:\VisualStudio\Projects\YourDirectory [ENTER] SVNVERSION should answer why its not working, in my case was by E155021: This client is too old to work with thew working copy at...