문제

맞춤형 컨텐츠 유형과 페이지 레이아웃이 모두 사이트 정의 내부에있는 사용자 정의 페이지 라이브러리가 있습니다.

예상대로 작동합니다. 내가 돌아 다닐 수없는 유일한 것은 Page-Lib, CType, Page-Layout을 통해 STSADM을 통해 솔루션을 업그레이드하면 페이지 레이아웃을 제외한 모든 것이 업데이트된다는 것입니다.

CTYPE의 새로운 필드-> 문제 없음 페이지-lib의 뷰가 변경되었습니다-> 문제 없음

업데이트 된 pagelayout-> 오류

페이지 층 섹션 :

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

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>

이상한 점은 기본 페이지 라이브러리가없는 페이지 레이아웃이 있다면 Page-ayout을 업데이트 할 수 있다는 것입니다. 문제는 사용자 정의 페이지 라이브러리 내부에서 사용자 정의 페이지 레이아웃을 사용하는 경우에만 발생합니다.

나는 Google 검색을 발견하고 힌트를 발견했습니다. 문제는 페이지 레이아웃이 불안하다는 것입니다. 작은 샘플 코드로 이것을 확인했습니다.

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

코드를 실행 한 후 페이지 레이아웃이 업그레이드되고 새 페이지 레이아웃을 사용합니다.

문제는 내가 약을 가지고 있기 때문에 이것이 진짜 해결책이 아니라는 것입니다. Site-DEF를 사용한 1000 개의 사이트 수집. 그리고 페이지 층. 그들 모두를 업데이트하는 것은 상당히 고통 스럽습니다. 아무도 이것에 대한 해결책을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

한 가지에 대해 언급하고 싶습니다. indoreifalreadyexists = "true"가 제대로 작동하지 않는 것 같습니다. 링크, 값을 False로 되 돌릴 수 있습니다.

<File Url="CustomPage.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" >
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top