2010-07-27 72 views
1

我正在使用MSBuild/yuicompressor來組合和縮小JavaScript。如何在MSBuild中輸出時間戳

作爲這個過程的一部分,我想修改我的腳本引用,使它們在查詢字符串中有一個時間戳。這樣,用戶在發佈新版本時總是獲取文件的非緩存版本。例如:

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

我使用FileUpdate從MSBuildCommunityTasks更新<script>參考,但它並沒有時間戳:

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

什麼是輸出的最好方式本時間戳使用的MSBuild?

回答

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="&lt;script type='text/javascript' src='/scripts/combined-minified.js?$(Year)$(Month)$(Day)' /&gt;" 
     /> 
</Target>