我们正在使用Teamcity,Git和MSBuild来部署我们的网站。
我们的网站运行Sitecore CMS。它需要位于根目录中,而不是虚拟目录中。
我不想将所有数百个Sitecore相关文件都包含在我们的代码存储库中,因为它们永远不会改变。我可以在部署站点之后对它们进行xcopy,但是这会给每个构建增加一分钟并且效率低下。
有没有更好的方法来实现这一目标?
答案 0 :(得分:1)
您可以使用MSBuild“逐步”复制文件。它被称为batching。 MSBuild比较输入文件的日期时间戳和输出的日期时间戳,如果输入的一些日期时间>输出datetime然后执行目标或任务。
答案 1 :(得分:0)
您可以查看Incremental Builds。它检查以前构建的组件是否仍处于最新状态,因此无需重建或与部署服务器同步。它只重新构建已更改的文件。但是,如果您的构建机器在编译之前更改或者您的构建被清理,那么时间戳可能会导致您出现问题。
如果您的文件内容没有变化,但是当您从源代码控制中提取代码并且文件的时间戳设置为构建开始时构建机器的当前时间时,您可以查看将SHA哈希码应用于已部署的文件和构建文件。
由于SHA哈希码不查看时间戳,因此它只允许您复制文件内容更改的文件。