Этот вопрос уже имеет ответ здесь:
Я использую MSBuild/yuicompressor, чтобы объединить и уменьшить JavaScript.
Как часть этого процесса, я хочу изменить свои ссылки сценария, таким образом, у них есть метка времени в querystring. Тем путем пользователь всегда получает некэшированную версию файла, когда новый выпуск публикуется. Например:
Я использую FileUpdate от MSBuildCommunityTasks для обновления ссылка, но это не имеет метки времени:
Что лучший способ состоит в том, чтобы произвести эту метку времени с помощью MSBuild?
Этот метод сработал для меня:
<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>