Question

Dans un événement FeatureActivated, je suis en train de mettre à jour le type de contenu associé pour une mise en page. Je cours pour des questions bien avec la page ASPX associée ne pas être vérifié. Voici mon code:

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    SPSite site = (SPSite)properties.Feature.Parent;
    if (PublishingSite.IsPublishingSite(site))
    {
        PublishingSite pubSite = new PublishingSite(site);

        SPContentType ct = site.RootWeb.ContentTypes["Custom Page"];

        string layoutURL = site.ServerRelativeUrl + "_catalogs/masterpage/" + pageLayoutName;
        PageLayout layout = pubSite.PageLayouts[layoutURL];
        layout.AssociatedContentType = ct;
        layout.Update();
    }
}

J'ai essayé

PageLayout layout = pubSite.PageLayouts[layoutURL];
PublishingPage ppLayout = PublishingPage.GetPublishingPage(layout.ListItem);
ppLayout.CheckOut();
layout.AssociatedContentType = ct;
layout.Update();
ppLayout.CheckIn("Associated CT updated");

mais cette erreur sur avec Error occurred in deployment step 'Activate Features': Invalid SPListItem. The SPListItem provided is not compatible with a Publishing Page.

Toutes les idées?

Était-ce utile?

La solution

Vous devez faire ListItem.CheckOut (pour l'élément de la liste représentée par la mise en page), plutôt que d'essayer de vérifier l'objet page.

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