1
<configuration>
  <userSettings>
        <IntegrationTests.Resources.IntegrationTests>
            <setting name="UserAppPath" serializeAs="String">
                <value>C:\Program Files (x86)\App\</value>
            </setting>
            <setting name="LogFilePath" serializeAs="String">
                <value>C:\logfiles\</value>
            </setting>
        </IntegrationTests.Resources.IntegrationTests>
  </userSettings>
</configuration>

上記のxmlファイルがあり、ジョブの実行中にビルドジョブでこれらのパス値を動的に編集したい...設定名がUserAppPathの場合、同じ値タグを正しいパスで更新し、設定がLogFilePathの場合は同じパスを編集します選択したスレーブに基づくログファイルのパス...同様に、n個の設定があるかもしれませんが、それらのいくつかだけを変更することに興味があるかもしれません。私はant xmltaskのreplace、insert askを試みました。しかし、私の問題は解決しませんでした....どんな助けでも大歓迎です

4

1 に答える 1

3

copy with filtersetを使用してこれを行うことができます。

変数をプロパティファイルに入れます。

user.app.path=C:\\Program Files (x86)\\App\\
logfile.path=C:\\logfiles\\

構成ファイルのテンプレート バージョンを作成します。

<configuration>
  <userSettings>
        <IntegrationTests.Resources.IntegrationTests>
            <setting name="UserAppPath" serializeAs="String">
                <value>@user.app.path@</value>
            </setting>
            <setting name="LogFilePath" serializeAs="String">
                <value>@logfile.path@</value>
            </setting>
        </IntegrationTests.Resources.IntegrationTests>
  </userSettings>
</configuration>

ビルド ファイルで、構成ファイルのバージョンを作成し、テンプレート バージョンのプレースホルダーをフィルターセットに置き換えます。

<project name="test" default="test">
  <target name="test">
    <copy file="config_template.xml" tofile="config.xml">
      <filterset begintoken="@" endtoken="@">
        <filtersfile file="config.properties" />
      </filterset>
    </copy>
  </target>
</project>
于 2014-11-26T12:33:07.487 に答える