3

Subversion で保持される DotNet プロジェクトの新しいビルド プロセスを作成しています。

(Nant 経由で) コンパイルする dll/exe ごとに、ビルドされる dll に 2 つの追加属性を含めたいと思います。

「asminfo」ナントタスクの仕組みはすでに理解しています。しかし、バイナリに埋め込みたい情報を取得するには助けが必要です。

ビルドは常に完全な作業コピー (ビルド プロセス自体によってチェックアウトされます) から行われるため、常に .svn ディレクトリが利用可能になります。

追加したい属性は、RepositoryVersion と RepositoryPath です。(これらは、この情報がsvnで使用する名前ではないことを理解しています)

これを行うには、BuildFile が含まれる作業コピー フォルダーによって表される RepositoryVersion と RepositoryPath を抽出する必要があります。

この情報を特定の .svn フォルダーから 2 つの nant 変数に抽出するにはどうすればよいですか?

4

4 に答える 4

3

まず、「svn info --xml >out.xml」を使用して、svn 情報をテキスト ファイルに取得できます。次に、Nant xml-peek を使用して、ファイルから変数に値を取得できます。

<xmlpeek file="out.xml" xpath="/info/entry/url" property="svn.url" />
于 2008-10-10T13:14:37.210 に答える
2

これは私がリビジョン番号のためにそれを行う方法です:

<exec
    program="svn"
    commandline='log "${solution.dir}" --xml --limit 1'
    output="${solution.dir}\_revision.xml"
    failonerror="false"/>
<xmlpeek
    file="${solution.dir}\_revision.xml"
    xpath="/log/logentry/@revision"
    property="version.revision"
    failonerror="false"/>
<delete file="${solution.dir}\_revision.xml" failonerror="false"/>
于 2008-10-20T17:26:00.427 に答える
0

svn キーワードをプロパティとしてビルド ファイルに埋め込むことをお勧めします。例えば:
<property name="RepositoryPath" value="$HeadURL$" />
<property name="RepositoryVersion" value="$Revision$" />

于 2008-10-10T13:21:11.160 に答える
-1

.svn ディレクトリのエントリは、直接アクセスすることを意図したものではありません。あなたが何をしているのかはよくわかりませんが、プロジェクトをチェックアウトするために使用するメカニズムを使用して、HEAD バージョンとパスを見つけることをお勧めします。(実際には、プロジェクトをチェックアウトしているため、すでにパスを知っていると思いますが、そうではないかもしれません)。

申し訳ありませんが、これ以上の情報を提供することはできません。

于 2008-10-10T13:10:04.643 に答える