Конфигурация проекта Sitecore VS для сериализации Unicorn

У меня есть новое решение Sitecore SXA в VS 2017, которое соответствует лучшим практикам Helix с сериализацией Unicorn. Наш Sitecore 9.3 работает в док-контейнере. Я создал первый сайт — EA — в Sitecore CMS под нашим арендатором — Company Inc — и понял, что мне нужно создать соответствующий проект в VS с конфигурационным файлом сериализации Unicorn. После его создания я создал решение и выполнил компоновку докеров, но при изменении элементов на новом сайте я не думаю, что файлы единорога .yaml создаются. Кроме того, я думаю, что в CMS я должен видеть «Этот элемент контролируется Unicorn» для моих отслеживаемых элементов. Вот моя конфигурация для проекта EA:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <unicorn>
      <configurations>
        <configuration
          name="Project.EA"
          description="EA site folder"
          dependencies="Project.CompanyInc"
          patch:after="configuration[@name='Foundation.Serialization']"
          extends="Helix.Base.Project">
        <predicate>
          <include name="Content" database="master" path="/sitecore/content/Company Inc/$(module)" />
          <include name="Forms" database="master" path="/sitecore/Forms/Company Inc/$(module)" />
          <include name="Media" database="master" path="/sitecore/media library/Project/Company Inc/$(module)" />
          <include name="Theme" database="master" path="/sitecore/media library/Themes/Company Inc/$(module)" />
        </predicate>
        </configuration>
      </configurations>
    </unicorn>
  </sitecore>
</configuration>

Какие еще конфигурации/настройки мне не хватает, чтобы Unicorn отслеживал мои товары?


person Rich Rosiak    schedule 26.02.2020    source источник


Ответы (1)


Проблема заключалась в том, что в моем имени конфигурации:

<configuration
  name="Project.EA"

EA — это $(модуль) и должен соответствовать имени элемента сайта, которое отображается в CMS. Так, например, эта строка

<include name="Content" database="master" path="/sitecore/content/Company Inc/$(module)" />

Будет оцениваться как /sitecore/content/Company Inc/EA, которого не существует. Что существует: /sitecore/content/Company Inc/Ever After

Итак, после переименования имени конфигурации на это:

<configuration
  name="Project.Ever After"

CMS начала показывать "Этот элемент контролируется Unicorn"

Заключительное наблюдение. Unicorn использует эти переменные в конфигурациях сериализации.

$(layer)
$(module)
$(name)

а в имени конфигурации, разделенном точками, первым идет уровень, затем модуль, а затем имя. Пример:

<configuration
  name="Project.Ever After.Site US"

$(слой) = проект, $(модуль) = Ever After, $(имя) = сайт США

person Rich Rosiak    schedule 27.02.2020