1

私はMSBuild/yuicompressorを使用して、JavaScriptを組み合わせて縮小しています。

このプロセスの一環として、スクリプト参照を変更して、クエリ文字列にタイムスタンプが含まれるようにします。そうすれば、ユーザーは、新しいリリースが公開されたときに、常にキャッシュされていないバージョンのファイルを取得します。例えば:

<script type="text/javascript" src="/scripts/combined-minified.js?20100727" />

MSBuildCommunityTasksのFileUpdateを使用して参照を更新し<script>ていますが、タイムスタンプがありません。

<FileUpdate
      Files="@(includeFile)"
      Regex="#scriptfiletoken#"
      ReplacementText="&lt;script type='text/javascript' src='/scripts/combined-minified.js' /&gt;"
      />

MSBuildを使用してこのタイムスタンプを出力する最良の方法は何ですか?

4

1 に答える 1

3

この方法は私のために働いた:

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

<Target Name="MyTarget">
    <!-- Build timestamp. -->
    <Time>
      <Output TaskParameter="Month" PropertyName="Month" />
      <Output TaskParameter="Day" PropertyName="Day"  />
      <Output TaskParameter="Year" PropertyName="Year" />
    </Time>

    <!-- ....... -->    

    <!-- Add timestamp to includeFile -->
    <FileUpdate
      Files="@(includeFile)"
      Regex="#scriptfiletoken#"
      ReplacementText="&lt;script type='text/javascript' src='/scripts/combined-minified.js?$(Year)$(Month)$(Day)' /&gt;"
      />
</Target>
于 2010-07-28T22:46:03.367 に答える