2012-02-16 10 views
0

年に翻訳できません。したがって、私のプロジェクトにインストーラファイル名にsubversionリビジョンを含めるように変更しました。それが含まれるように 私はMSBuild.Community.Tasks.Targetsと修正csprojファイルをインストール:Cygwin 1.7.xはWindowsパスをPOSIXパス

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" /> 
... 
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="C:\cygwin\bin"> 
    <Output TaskParameter="Revision" PropertyName="Revision" /> 
</SvnVersion> 
... 

これは魅力のように働きました。

C:アップグレードが1.7をcygwinのした後ただし、次のエラーがビルドプロセスの実行時に発生し始めた\ cygwinの\ binに\ svnversion.exe --no-改行 「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"(再構築 ターゲット) - FAILED。

SvnInfoタスクのLocalPathパラメータを "。"に変更しようとしました。または "/ cygdrive/z/dev/myproject/src/winservice"ですが、SvnInfoタスクは何を入れてもウィンドウのフルパスを使用するという厄介な癖があります。以前に使用されたパスに解決され、 "/ cygdrive/z/dev/myproject/src/winservice"が "Z:/ cygdrive/z/dev/myproject/src/winservice"に解決されました。

Cygwin 1.7で設定できる設定がありますが、問題が少なくなりますか?

答えて

0

特定のパス形式を意図的に使用したい場合は、cygpathユーティリティを使用できます。

$ echo $PWD 
/cygdrive/c/Windows 

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

$ cygpath -wa . 
C:\Windows 

Subversionのビルドプロセスの詳細を知らなくても、あなたがそれを介してそのMSBuildProjectDirectoryオブジェクトを渡すことで、ローカルパスを設定することが可能でしょうか?

+0

問題は私のビルドプロセスをCygwinに結びつけたくないということです。現在、Cygwinでビルドプロセスを接続するのは、binディレクトリの場所です(ToolPathパラメータで設定されています)。したがって、私が他のいくつかのSubversionクライアントをダウンロードしてそのディレクトリを変更した場合、私は他に変更する必要はありません。しかし、私がcygpathを使用している場合、私はもう一つ知っていることを追加しています。 –

+0

また、cygwinを呼び出すことは役に立ちません。ローカルパス= "/ cygdrive/z/dev/myproject/src/winservice"を設定すると、Svninfoコミュニティタスクは自動的にドライブ文字を(私の場合はZ :)追加します。これはもちろん同じエラーになります。 –

関連する問題