MSBuild 缩小和连接 javascript,将内容散列到文件名中

标签 msbuild concatenation versioning tfsbuild minify

到目前为止,我一直在使用 MS Ajax Minifier 来压缩和组合我的 CSS 和 JS。我的服务器设置了很远的 future 过期 header ,所以我需要一个缓存过期策略。目前,我正在通过更改文件名来手动对这些项目进行版本控制,以便它们在每次发布时过期。

我想稍微自动化一下,特别是通过将文件内容的哈希附加到压缩的文件名上。如果我们可以使用此更新后的文件名更新一些配置 XML(存在于不同项目中)文件,则奖励积分

我们正在使用 TFS 构建服务器,所以我想这应该包含在 MSBuild 任务中?或者我可以让它作为预/后构建项目步骤运行吗?

如果有人在这方面有任何知识并乐于分享,我们将不胜感激。

谢谢

最佳答案

当然,您可以从 MSBuild 中完成所有操作:

  • 创建您的 Ajax Minifier Manifest Files .我会保持这些静态和版本。
  • 创建一个 msbuild script包含:

    1 - Ajax Minifier Manifest Task进行挤压和组合。

    2 - Hashing任务。如您所见,这是 c# 代码。更改代码以读取在步骤“1”中设置的输出文件夹并更改文件的名称,将计算出的散列添加到每个文件中。
  • Import在您的项目或主构建脚本中创建的 msbuild 脚本(如果有)。
  • 关于MSBuild 缩小和连接 javascript,将内容散列到文件名中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14339453/

    相关文章:

    azure - Visual Studio Team Services 生成错误无法复制 AssemblyAttributes.cs

    mysql - 包含保留字的连接列

    ruby-on-rails - rails/PaperTrail : approving edits

    MSBuild Copy 任务第一次不复制文件

    msbuild - 在 3.5 Web Forms 应用程序中在 Web.config 上使用 SlowCheetah 配置转换

    crystal-reports - 连接单个数据库字段的多个值

    Python 将 N 个字典与每个键的最大值连接起来

    npm - 是否有npm版本预发行标识符?

    Flutter 版本解决失败 with new flutter upgrade

    unit-testing - 为什么 VS2015 Enterprise 中禁用 MSBuild 分析代码覆盖率选项?