我正在使用MSBuild / yuicompressor来组合和缩小JavaScript。
作为此过程的一部分,我想修改我的脚本引用,以便它们在查询字符串中有一个时间戳。这样,用户在发布新版本时始终获取文件的非缓存版本。例如:
<script type="text/javascript" src="/scripts/combined-minified.js?20100727" />
我正在使用MSBuildCommunityTasks中的FileUpdate更新<script>
引用,但它没有时间戳:
<FileUpdate
Files="@(includeFile)"
Regex="#scriptfiletoken#"
ReplacementText="<script type='text/javascript' src='/scripts/combined-minified.js' />"
/>
使用MSBuild输出此时间戳的最佳方法是什么?
答案 0 :(得分:2)
这种方法对我有用:
<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="<script type='text/javascript' src='/scripts/combined-minified.js?$(Year)$(Month)$(Day)' />"
/>
</Target>