为什么SVNVersion.exe返回Unversioned Directory

时间:2013-01-10 13:40:15

标签: svn c#-4.0 tortoisesvn msbuild-task

我正在尝试使用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>

2 个答案:

答案 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...