0

makeプロジェクトのビルドにSVNリビジョン番号を付けようとしています。

AssemblyVersionFileの詳細を更新するためにMsBuildTaskを使用しています。

次の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>
4

2 に答える 2

0

svnversion を更新する必要はありません(更新が解決策であると考える理由から) が、結果を得るために、svnversion を実行するための正しい作業文字列 ** を取得する必要があります。

svnversion --helpコマンドラインの形式に注意してください

svnversion [OPTIONS] [WC_PATH [TRAIL_URL]]

とコメント

WC_PATH がバージョン管理されていないパスの場合、プログラムは「バージョン管理されていないディレクトリ」または「バージョン管理されていないファイル」を出力します。

つまり、タスクのコマンドラインを構築します。これは、WC以外の奇妙な場所ではなく、バージョン管理されたディレクトリが必要であることを確認します

于 2013-01-10T17:05:20.170 に答える