사용자 지정 콘텐츠 형식 및 페이지 레이아웃이 모두 사이트 정의 내에있는 사용자 지정 페이지 라이브러리가 있습니다.SharePoint> 사용자 지정 페이지 라이브러리 및 PageLayout
예상대로 작동합니다. 내가 해결할 수없는 유일한 점은 stsadm을 통해 page-lib, ctype, page-layout으로 솔루션을 업그레이드하면 페이지 레이아웃을 제외한 모든 것이 업데이트된다는 것입니다. CTYPE에서
새로운 필드 -> 페이지-lib 디렉토리에 아무런 문제가 변경된보기 ->
이 페이지 레이아웃을 업데이트 아무 문제 -> ERROR
페이지 레이아웃 섹션 :
<!-- 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>
이상한 점은, 기본 페이지 라이브러리가없는 페이지 레이아웃 만 있으면 페이지를 업데이트 할 수 있다는 것입니다. 사용자 지정 페이지 라이브러리 내에서 사용자 지정 페이지 레이아웃을 사용하는 경우에만 문제가 발생합니다.
일부 Google 검색을 수행했는데 힌트를 발견했습니다. 페이지 레이아웃이 엉성한 것일 수 있습니다. 페이지 레이아웃이 업그레이드 코드를 실행 한 후
SPFile file = folder.Files["Default.aspx"];
if (file.CustomizedPageStatus == SPCustomizedPageStatus.Customized)
{
file.RevertContentStream();
}
를 새 페이지 레이아웃을 사용 나는 작은 샘플 코드와이를 확인했습니다.
문제는 내가 대략 가지고 있기 때문에 이것이 나를위한 진짜 해결책이 아니다. site-def를 사용하는 1000 개의 사이트 모음 및 페이지 레이아웃. 모두 업데이트하는 것은 상당히 고통 스럽습니다. 아무도 이것에 대한 해결책을 알고 있습니까?
현재 "솔루션"은 기능 활성화에 대해 위 코드를 실행하는 기능 수신기입니다. 최종 해결책은 없지만 지금 당장 해결하십시오. – Henrik