大约一年后,我修改了我的一个项目,在安装程序文件名中包含颠覆修订。我安装了 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): error MSB6006 : "svnversion.exe" exited with code 1. Done Building Project
“Z:\dev\swiftarhiv\src\myprojects\myprojectservice.cspro j”(重建目标)——失败。
我尝试将 SvnInfo 任务的 LocalPath 参数修改为“。” 或“/cygdrive/z/dev/myproject/src/winservice”,但 SvnInfo 任务有一个讨厌的习惯,即不管你在“.”中输入什么,都使用 Windows 完整路径。解析为之前使用的路径,“/cygdrive/z/dev/myproject/src/winservice”解析为“Z:/cygdrive/z/dev/myproject/src/winservice”,这再次导致错误。
我可以在 Cygwin 1.7 中设置一个可以让我的问题变得稀缺的设置吗?