Cygwin 1.7.x не может преобразовать путь Windows в путь POSIX - PullRequest
0 голосов
/ 16 февраля 2012

Год или около того, следовательно, я изменил свой проект, чтобы включить в него имя файла 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 "(Перестроить цель (и)) - СБОЙ.

Я попытался изменить параметр LocalPath задачи SvnInfo на". "или "/ cygdrive / z / dev / myproject / src / winservice", но задача SvnInfo имеет неприятную привычку использовать полный путь к Windows независимо от того, что вы ввели так "."разрешается до пути, использованного ранее, и "/ cygdrive / z / dev / myproject / src / winservice" разрешается до "Z: / cygdrive / z / dev / myproject / src / winservice", что снова вызывает ошибку.

Есть ли настройка, которую я могу установить в Cygwin 1.7, которая сделает мои проблемы редкими?

1 Ответ

0 голосов
/ 16 февраля 2012

Если вы хотите умышленно использовать определенный формат пути, вы можете использовать утилиту cygpath.

$ echo $PWD
/cygdrive/c/Windows

$ cygpath -ua .
/cygdrive/c/Windows/

$ cygpath -wa .
C:\Windows

Не зная подробностей процесса сборки Subversion, возможно ли для вас установить LocalPath, передав через него объект MSBuildProjectDirectory?

...