3

ファイル マージ タスクで CCNetLabel を使用するにはどうすればよいですか? 私が見つけたものから、dynamicValues を使用する必要があります。私はこのようなものを持っていますが、それは何の助けにもなりませんか?

<publishers>
  <merge>
    <dynamicValues>
      <replacementValue property="files">
        <format>D:\Testoutput\{0}\*.xml</format>
        <parameters>
          <namedValue name="$CCNetLabel" value="Default" />
        </parameters>
      </replacementValue>
    </dynamicValues>
  </merge>
  <xmllogger />
  <modificationHistory onlyLogWhenChangesFound="true" />
  <statistics />
</publishers>
4

1 に答える 1

3

スクリプトでは、次の構成を生成しようとしています (意図的に、読みやすい簡略表記を使用しています)。

<publishers>
  <merge>
    <files>D:\Testoutput\$[$CCNetLabel]\*.xml</files>
  </merge>
  <xmllogger />
  <modificationHistory onlyLogWhenChangesFound="true" />
  <statistics />
</publishers>

これは<files>配列であるため機能しません。したがって、次のようなものが必要になります。

<publishers>
  <merge>
    <files>
      <file>D:\Testoutput\$[$CCNetLabel]\*.xml</file>
    </files>
  </merge>
  <xmllogger />
  <modificationHistory onlyLogWhenChangesFound="true" />
  <statistics />
</publishers>

残念ながら、タグ<dynamicValues>ではサポートされて<merge>いないため、これも機能しません。<files>現在 (バージョン 1.6) ここで統合プロパティを使用することはまったく不可能だと思います。

同じ結果を得るには、次の回避策を使用します。

<publishers>
  <exec>
    <executable>C:\Windows\system32\cmd.exe</executable>
    <buildArgs>/C copy D:\Testoutput\$[$CCNetLabel]\*.xml D:\Testoutput\FixedDir</buildArgs>
  </exec>
  <merge>
    <files>
      <file>D:\Testoutput\FixedDir\*.xml</file>
    </files>
  </merge>
  <xmllogger />
  <modificationHistory onlyLogWhenChangesFound="true" />
  <statistics />
  <exec>
    <executable>C:\Windows\system32\cmd.exe</executable>
    <buildArgs>/C del D:\Testoutput\FixedDir\*.xml</buildArgs>
  </exec>
</publishers>
于 2011-02-05T16:31:04.357 に答える