Comment ajouter un champ à un contenu de contenu avec la mise à niveau de fonctionnalités, pour les sites nouveaux et existants

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

  •  09-12-2019
  •  | 
  •  

Question

Donc, j'ai utilisé la mise à niveau de la fonctionnalité depuis un moment, cela fonctionne assez bien pour les instances existantes, mais aussi loin que je connais la mise à niveau de la fonctionnalité ne se produit pas automatiquement, vous devez déclencher la mise à niveau, qui se produit automatiquement via la mise à niveau de la fonction. Toolkit dans la page Administration centrale.

Le problème est que je souhaite ajouter un nouveau champ aux colonnes Site et ajouter ce champ à un type de contenu existant.

Lorsque les développeurs précédents l'ont fait, ils n'utilisaient aucune version de la version de fonctionnalité, la version était de 0.0.0.0.

J'ai incrémenté à 1.0.0.0, ce qui fonctionnera bien pour les sites existants.

Toutefois, si je crée un nouveau site, je suis sûr que le nouveau champ ne sera pas créé car pour de nouveaux sites, la fonctionnalité sera 1.0.0.0 non 1.0.0.0 Donc, je ne pourrai pas déclencher une mise à niveau. Entrez la description de l'image ici

Voici ce que j'ai jusqu'à présent.

éléments_1_0_0_0.xml contient ceci:

<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 contient ceci:

<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>

Aperçu du manifeste de fonctionnalité ressemblerait à ceci:

<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>

Était-ce utile?

La solution

La réponse est ici: http://blogs.msdn.com/b/sanjaynarang/archive/2012/02/06/feature-upgrade-adding-fields-a-content-types-and-sharepoint-Application -lifecycle-gestion.aspx

Mise à jour des types de contenu http:// msdn. microsoft.com/en-us/library/aa543504.aspx Ne mettez en aucun cas mettre à jour le fichier de définition de type de contenu d'un type de contenu après avoir installé et activer ce type de contenu. SharePoint Foundation ne suit pas toutes les modifications apportées au fichier de définition de type de contenu. Par conséquent, vous n'avez aucune méthode fiable pour repousser toutes les modifications apportées aux types de contenu de site aux types de contenu enfant.

Mise à jour des types de contenu enfant http:// msdn .microsoft.com / fr-US / US / Bibliothèque / MS442695.aspx Vous ne pouvez pas ajouter de colonnes à un type de contenu de site existant de manière déclarée, en d'autres termes, en mettant à jour la fonction Fichiers XML

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top