Как добавить поле на ContentType с обновлением функции, для новых и существующих сайтов

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/42744

  •  09-12-2019
  •  | 
  •  

Вопрос

Итак, я некоторое время использовал функции, это работает довольно хорошо для существующих экземпляров, но, насколько я знаю, обновление функции не происходит автоматически, вам нужно запускать обновление, которое происходит автоматически через обновление функции Toolkit в странице центральной администрирования.

Проблема в том, что я хочу добавить новое поле в столбцы сайта, а также добавить это поле в существующий тип контента.

Когда предыдущие разработчики сделали это, они не использовали функцию версию, чтобы версия была 0.0.0.0.

Я увеличивался до 1.0.0.0, и это будет работать нормально для существующих сайтов.

Однако, если я создаю новый сайт, я уверен, что новое поле не будет создано, потому что для новых сайтов функция будет 1.0.0.0 не 1.0.0.0, поэтому я не смогу вызвать обновление. Введите описание изображения здесь

Вот вот то, что у меня пока.

elements_1_0_0_0.xml содержит это:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Field ID="{A32453DB-4382-4F5C-8E33-8284AB160E47}" Name="Recurrent" DisplayName="$Resources:SPNLMeetings,Field_AgendaPointRecurrent_Name;" Description="$Resources:SPNLMeetings,Field_AgendaPointRecurrent_Description;" Group="$Resources:SPNLMeetings,Field_NationaleLoterijMeetingColumns_Group;" Type="Boolean" StaticName="Recurrent"  Required="FALSE" />
</Elements>
.

template.xml содержит это:

<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
  ImageUrl="SPNL\spnl_feature.jpeg"
  Title="$Resources:SPNLMeetings,Feature_NLMeetingsContentTypes_Title"
  Description="$Resources:SPNLMeetings,Feature_NLMeetingsContentTypes_Description" Version="1.0.0.0">
  <UpgradeActions>    
    <VersionRange BeginVersion="0.0.0.0" EndVersion="0.9.9.9">
      <ApplyElementManifests>
        <ElementManifest Location="Fields\Elements_1_0_0_0.xml" />
      </ApplyElementManifests>
      <AddContentTypeField ContentTypeId="0x0120D52000D56C75F51E1BD54E9D59BBBA1925379A01"
          FieldId="{A32453DB-4382-4F5C-8E33-8284AB160E47}" PushDown="TRUE"/>
      <CustomUpgradeAction Name="ReorderFields"/>
    </VersionRange>
  </UpgradeActions>
</Feature>
.

Предварительный просмотр функций Манифеста будет выглядеть так:

<Feature xmlns="http://schemas.microsoft.com/sharepoint/" ImageUrl="SPNL\spnl_feature.jpeg" Title="$Resources:SPNLMeetings,Feature_NLMeetingsContentTypes_Title" Description="$Resources:SPNLMeetings,Feature_NLMeetingsContentTypes_Description" Version="1.0.0.0" DefaultResourceFile="SPNLMeetings" Id="5d35f78b-2211-4cd8-bcba-6db7ac456b74" ReceiverAssembly="NationaleLoterij.SharePoint.Meetings.Solution, Version=1.0.0.0, Culture=neutral, PublicKeyToken=212c981019c3ab5d" ReceiverClass="NationaleLoterij.SharePoint.Meetings.Solution.Features.NLMeetingsContentTypes.NLMeetingsContentTypesEventReceiver" Scope="Site">
  <UpgradeActions>
    <VersionRange BeginVersion="0.0.0.0" EndVersion="0.9.9.9">
      <ApplyElementManifests>
        <ElementManifest Location="Fields\Elements_1_0_0_0.xml" />
      </ApplyElementManifests>
      <AddContentTypeField ContentTypeId="0x0120D52000D56C75F51E1BD54E9D59BBBA1925379A01" FieldId="{A32453DB-4382-4F5C-8E33-8284AB160E47}" PushDown="TRUE" />
      <CustomUpgradeAction Name="ReorderFields" />
    </VersionRange>
  </UpgradeActions>
  <ActivationDependencies>
    <ActivationDependency FeatureTitle="$Resources:SPNL,Feature_NLBaseContentTypes_Title" FeatureDescription="$Resources:SPNL,Feature_NLBaseContentTypes_Description" FeatureId="e3356a10-dcd9-45a5-a1f5-6d9695b9c671" />
  </ActivationDependencies>
  <ElementManifests>
    <ElementManifest Location="Fields\Elements.xml" />
    <ElementManifest Location="ContentTypes\Elements.xml" />
    <ElementFile Location="AgendaPointProposedContentTypeResources\docsethomepage.aspx" />
    <ElementManifest Location="AgendaPointProposedContentTypeResources\Elements.xml" />
    <ElementFile Location="AgendaPointContentTypeResources\docsethomepage.aspx" />
    <ElementManifest Location="AgendaPointContentTypeResources\Elements.xml" />
  </ElementManifests>
</Feature>
.

Это было полезно?

Решение

Ответ здесь: http://blogs.msdn.com/b/sanjaynarang/archive/2012/02/06/feature-upgrade-adding-fields-to-content-types-and-sharepoint-aplication -lifecycle-manizer.aspx

Обновление типов содержимого http:// msdn. Microsoft.com/en-us/Library/aaa543504.aspx . Ни в любых обстоятельствах обновляйте файл определения типа содержимого для типа содержимого после установки и активации этого типа содержимого. Foundation SharePoint не отслеживает все изменения, которые сделаны в файл определения типа содержимого. Следовательно, у вас нет надежного способа выдвижения всех изменений, сделанных в типы содержимого сайта к типам дочерних контентов.

Обновление типов дочерних контентов http:// msdn .microsoft.com / en-us / библиотека / ms442695.aspx Вы не можете добавить столбцы к существующему типу содержимого сайта, выполненно, другими словами, обновлением функции XML-файлов

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top