一年左右因此,我修改了我的一个项目,在安装程序文件名中包含了subversion修订版。 我安装了MSBuild.Community.Tasks.Targets并修改了csproj文件,使其包含:
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
...
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="C:\cygwin\bin">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnVersion>
...
这就像一个魅力。但是,在升级到cygwin 1.7之后,运行构建过程时开始出现以下错误:
C:\ cygwin \ bin \ svnversion.exe --no-newline “Z:/ cygdrive / z / dev / myproject / src / winservice”
'/ cygdrive / Z的/ dev / myproject的/ SRC / WINSERVICE / Z:/ cygdrive / Z的/ dev / myproject的/ SRC / WINSERVICE' 不存在
Z:\ dev \ swiftarhiv \ src \ myproject \ myprojectservice.csproj(200,5):错误 MSB6006:“svnversion.exe”退出,代码为1.完成构建项目
“Z:\ dev \ swiftarhiv \ src \ myprojects \ myprojectservice.cspro j”(重建 target(s)) - FAILED。
我尝试将SvnInfo任务的LocalPath参数修改为“。”或者“/ cygdrive / z / dev / myproject / src / winservice”,但是SvnInfo任务有一个令人讨厌的习惯,即无论你放入什么内容都使用windows full path“。”解析为之前使用的路径并将“/ cygdrive / z / dev / myproject / src / winservice”解析为“Z:/ cygdrive / z / dev / myproject / src / winservice”,这再次导致错误。
我可以在Cygwin 1.7中设置一个可以解决我的问题的设置吗?
答案 0 :(得分:0)
如果您希望能够有意使用特定路径格式,则可以使用cygpath
实用程序。
$ echo $PWD
/cygdrive/c/Windows
$ cygpath -ua .
/cygdrive/c/Windows/
$ cygpath -wa .
C:\Windows
在不知道Subversion构建过程的细节的情况下,您是否可以通过将MSBuildProjectDirectory对象传递给它来设置LocalPath?