You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发机如何设置夜间定时自动同步Sitecore/Unicorn本地条目?

解决方案

一、消除Date Last Synchronized字段的冗余变更

该问题是Unicorn的默认序列化逻辑导致的,默认会把同步时间字段的变更写入本地序列化文件,只要环境触发过同步就会产生无效的git变更。你可以通过配置字段过滤规则直接忽略该字段的序列化,从根源解决这类问题:

在你的Unicorn序列化预设配置文件中添加如下过滤规则:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <unicorn>
      <configurations>
        <configuration name="Your.Project.Configuration">
          <predicate>
            <!-- 保留原有需要序列化的项目规则 -->
          </predicate>
          <fieldFilter type="Unicorn.Configuration.FieldFilter, Unicorn">
            <!-- 忽略同步时间字段的序列化 -->
            <exclude fieldId="{B1A94F6B-4F6A-4F7A-8F7A-9D8E7F6A5D4C}" note="Date Last Synchronized" />
          </fieldFilter>
        </configuration>
      </configurations>
    </unicorn>
  </sitecore>
</configuration>

如果上述字段ID和你使用的Sitecore版本不匹配,可以在Sitecore后台自行查询Date Last Synchronized字段对应的实际ID替换即可。

二、定时自动同步实现方案

Unicorn本身没有内置定时同步功能,可通过外部工具组合实现需求,以下是本地开发环境通用的两种实现方式:

  • 方案1:Windows计划任务+PowerShell脚本
    Unicorn提供了对外的同步触发API,你可以编写简单的PowerShell脚本调用该API,然后在Windows计划任务中设置执行时间为你指定的夜间时段即可,脚本示例:
    $url = "https://你的本地站点域名/unicorn.aspx?verb=Sync&configuration=你的配置名&secret=你配置的安全密钥"
    Invoke-WebRequest -Uri $url -UseBasicParsing
    
    使用该方案需要提前在Unicorn配置中开启API访问权限并设置安全密钥。
  • 方案2:配合Sitecore CLI实现
    如果你已经在使用Sitecore CLI管理序列化内容,直接编写如下批处理脚本,加入Windows计划任务即可:
    cd /d "你的本地项目根目录路径"
    dotnet sitecore ser pull
    
    该方案不需要额外配置Unicorn API,操作更简便。

附:Unicorn序列化文件示例

Example Unicorn file

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:45:03