Как добавить поле на ContentType с обновлением функции, для новых и существующих сайтов
-
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>
. Решение