Конфигурация проекта Sitecore VS для сериализации Unicorn - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть новое решение Sitecore SXA в VS 2017, которое следует передовым методам Helix с сериализацией Unicorn. Наш Sitecore 9.3 работает в контейнере docker. Я создал первый сайт - EA - в Sitecore CMS под нашим арендатором - компанией In c - и решил, что мне нужно создать соответствующий проект в VS с файлом конфигурации сериализации Unicorn. После его создания я построил решение и выполнил docker -композицию, но при изменении элементов на новом сайте я не думаю, что создаются файлы единорога .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 отслеживает мои элементы?

1 Ответ

0 голосов
/ 27 февраля 2020

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

<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 использует эти переменные в конфигурационных сериализациях

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

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

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

$ (layer) = Project, $ (module) = Ever After, $ (name) = Site US

...