【问题标题】:Deploying extra files using MSBuild使用 MSBuild 部署额外文件
【发布时间】:2012-01-10 19:57:21
【问题描述】:

我们正在使用 Teamcity、Git 和 MSBuild 来部署我们的网站。

我们的网站运行 Sitecore CMS。它需要在根目录中,而不是虚拟目录中。

我不想将所有数百个与 Sitecore 相关的文件都包含到我们的代码存储库中,因为它们永远不会改变。部署站点后,我可以将它们复制进去,但这会为每个构建增加一分钟并且似乎效率低下。

有没有更好的方法来做到这一点?

【问题讨论】:

    标签: .net visual-studio-2010 deployment msbuild teamcity


    【解决方案1】:

    您可以使用 MSBuild“增量”复制文件。它被称为batching。 MSBuild 将输入文件的日期时间戳与输出的日期时间戳进行比较,如果某些输入日期时间 > 输出日期时间,则将执行目标或任务。

    【讨论】:

    • 检查日期时间戳的唯一问题是,如果源被拉到以前从未运行过部署的机器上(即自动化构建服务器)。时间戳可能不会表明文件已更改,因为所有时间戳都将设置为当前日期和时间。
    【解决方案2】:

    您可以查看Incremental Builds。它检查以前构建的组件是否仍然是最新的,因此不需要重新构建或与部署服务器同步。它只重新构建已更改的文件。但是,如果您的构建机器发生更改或在编译之前清理了您的构建,那么时间戳可能会给您带来问题。

    如果您的文件内容没有更改,但是当您从源代码管理中提取代码并且文件的时间戳设置为构建开始时构建机器的当前时间时,您可以查看将 SHA 哈希码应用于您的部署文件和构建文件。

    由于 SHA 哈希码不查看时间戳,因此您只能复制文件内容发生变化的文件。

    【讨论】:

      猜你喜欢
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多