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 回答