Pregunta

Tengo una biblioteca de páginas personalizada que incluye un tipo de contenido personalizado y un diseño de página dentro de una definición de sitio.

Funciona como se espera. Lo único que no puedo evitar es que si actualizo la solución con page-lib, ctype, page-layout a través de stsadm, todo se actualizará excepto el de page-layout.

Nuevos campos en el ctype - > No hay problema Vistas modificadas en la página-lib - > no hay problema

PáginaLayout actualizada - > ERROR

La sección de diseño de página:

<!-- specific page-layout to display LKW data -->
    <File Url="CustomPage.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" >
      <Property Name="Title" Value="$Resources:CustomLayouts,Title;" />
      <Property Name="MasterPageDescription"
                Value="$Resources:cmscore,PageLayout_BlankWebPartPage_Description;" />
      <Property Name="ContentType"
                Value="$Resources:cmscore,contenttype_pagelayout_name;" />
      <Property Name="PublishingPreviewImage"
                Value="~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/BlankWebPartPage.png, ~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/BlankWebPartPage.png" />
      <Property Name="PublishingAssociatedContentType"
                Value=";#$Resources:FieldsCTypes,cTypeDisplayName;;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900D38AAFB8072F441984BC947D49503947;#" />
    </File>

La sección relevante en el onet.xml:

<Module Name="Home" Url="$Resources:cmscore,List_Pages_UrlName;Custom" Path="">
      <File Url="Default.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE">
        <Property Name="Title"
                  Value="$Resources:Layouts,DisplayName;" />
        <Property Name="ContentType"
                  Value="$Resources:cmscore,contenttype_welcomepage_name;"/>
        <Property Name="PublishingPageLayout"
                  Value="~SiteCollection/_catalogs/masterpage/CustomPage.aspx, $Resources:PalfingerPlatformsOrderRoot,LKWpageDefaultTitle;" />
        <Property Name="PublishingPageContent"
                  Value="" />
      </File>
    </Module>

Lo extraño es que, si solo tengo un diseño de página sin una biblioteca de páginas subyacente, puedo actualizar la página-ayout. El problema solo ocurre si uso un diseño de página personalizado dentro de una biblioteca de páginas personalizada.

Hice una búsqueda en Google y encontré una pista: el problema podría ser que el diseño de la página no esté en el servidor. Lo verifiqué con un pequeño código de muestra:

SPFile file = folder.Files["Default.aspx"];
 if (file.CustomizedPageStatus == SPCustomizedPageStatus.Customized)
 {
   file.RevertContentStream();
 }

Después de ejecutar el código, el diseño de página se actualiza y utiliza el nuevo diseño de página.

El problema es que esta no es una solución real para mí porque tengo aprox. 1000 colecciones de sitios usando el sitio-def. y el diseño de la página. La actualización de todos ellos es bastante dolorosa. ¿Alguien sabe una solución para esto?

¿Fue útil?

Solución

Me gustaría comentar sobre una cosa. Parece que IgnoreIfAlreadyExists = " TRUE " no funciona correctamente. consulte este enlace , puede estar revirtiendo el valor A FALSO debería ayudar.

<File Url="CustomPage.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" >
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top