2010-03-19 3 views
0

나는 다음과 같은 특징이 있습니다의 ContentType DocumentTemplate

<?xml version="1.0" encoding="utf-8"?> 
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <Module Name="Templates" Url="_cts/Meeting Minutes" Path="templates" RootWebOnly="TRUE"> 
     <File Url="MeetingMinutes.docx" Type="Ghostable" /> 
    </Module> 
    <ContentType 
     ID="0x01010066DD088A6B8B46BCA775CCD119FBB3E8" 
     Name="Meeting Minutes" 
     Group="Custom Content Types" 
     Version="0"> 
     <FieldRefs /> 
     <DocumentTemplate TargetName="MeetingMinutes.docx"/> 
    </ContentType> 
</Elements> 

내가 다음 사용자 지정 목록 템플릿 내에서이의 ContentType을 사용 : 다음 Elements.xml을 포함

<?xml version="1.0" encoding="utf-8"?> 
<Feature Id="9A3C5D02-A2EB-4725-97F7-CDA6DE319F1B" 
    Title="My Custom Types" 
    Scope="Site" 
    DefaultResourceFile="core" 
    Hidden="TRUE" 
    xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <ElementManifests> 
     <ElementManifest Location="Elements.xml" /> 
     <ElementFile Location="templates/MeetingMinutes.docx" /> 
    </ElementManifests> 
</Feature> 

<ContentTypes> 
    <ContentTypeRef ID="0x0101"> 
    <Folder TargetName="Forms/Document" /> 
    </ContentTypeRef> 
    <ContentTypeRef ID="0x01010066DD088A6B8B46BCA775CCD119FBB3E8"> 
    <Folder TargetName="Forms/Document" /> 
    </ContentTypeRef> 
    <ContentTypeRef ID="0x0120" /> 
</ContentTypes> 

솔루션을 배포하고 해당 기능을 활성화 한 다음 목록 템플릿 인스턴스를 만듭니다. 도서관으로 가서 설정> 문서 라이브러리 설정> 콘텐츠 유형 : 회의록> 학부모 : 회의록> 고급 설정을 선택합니다. 이제 사이트 콘텐츠 유형의 고급 설정에 있습니다. 기존 문서 템플릿의 URL은 MeetingMinutes.docx이고 http://myserver/sites/testsite/_cts/Meeting%20Minutes/MeetingMinutes.docx을 가리키는 (템플릿 편집) 링크가 있습니다. 모든 것이 반짝입니다.

하지만 뒤로 버튼을 두 번 누르면 목록 콘텐츠 유형 설정으로 돌아갑니다. 이번에는 고급 설정을 클릭해도 기존 문서 템플릿의 URL은 여전히 ​​MeetingMinutes.docx이지만 (템플릿 편집) 링크는 없습니다. 문제가 발생했습니다.

을 누르면, AllItems.aspx로 돌아가서 New> Meeting Minutes를 클릭한다. Word가로드 될 때 Opening : 작은 열기 대화 상자 (열기 : http://myserver/sites/testsite/Shared%20Documents/Forms/Document/MeetingMinutes.docx)가 나타납니다. Word가 응답합니다. "Word에서이 문서를 읽을 수 없습니다. 손상되었을 수 있습니다."

그래서 문서 템플릿은 사이트 콘텐츠 유형 (올바르게 작동하지 않는 곳)에서 제대로 작동하지만 목록 콘텐츠 유형 (실제로 필요한 곳)에서는 작동하지 않습니다. 자, 내가 이것을 _layouts에 넣을 수 있다는 것을 알고 있지만, read에서 _cts는 the way입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

2

리치, 내가 지정한 기능 및 요소 파일을 사용하여 기능을 만들었 기 때문에 정확히 무슨 일이 일어나고 있는지 잘 모르겠습니다. 제대로 작동합니다.

한 가지 차이점이 있습니다. 나는 콘텐츠 형식의 라이브러리에 새 문서를 만들 때

, 템플릿 URL을

http://myserver/sites/testsite/Shared%20Documents/Forms/Meeting 분/MeetingMinutes.docx

하지

http://myserver/sites/testsite/Shared%20Documents/Forms/Document/MeetingMinutes.docx

어떻게 든 콘텐츠 유형 템플릿 틀린 폴더를 찾고있는 것 같습니다. 나는 그것이 당신에게 단서를 제공하기를 바랍니다.

+1

그래서 * TargetName이 무엇인지에 대한 것입니다. 나는 결코 그것을 완전히 이해하지 못했다. 나는 그것이 중요하다고 생각하지 않았기 때문에 원래 schema.xml의 섹션을 떠났다. 실수를 더 명확하게하기 위해 질문을 편집했습니다. 감사! –

+0

멋지다, 나는 항상 그것에 대해서도 궁금해했다! 그 점을 지적 해 주셔서 감사합니다. –

1

목록 내용 유형에 대한 문서 템플리트와 똑같은 문제가있었습니다.

내가 한 것은 웹 사이트에서 라이브러리를 만들 때 SharePoint가 수행하는 작업입니다. 콘텐츠 템플릿과 이름이 같은 하위 폴더의 라이브러리 "양식"폴더 내에 문서 템플릿을 복제합니다.

당신은 당신의 프로젝트에 어딘가에 모듈 요소를 추가해야합니다

<?xml version="1.0" encoding="utf-8"?> 
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <Module Name="MeetingMinutesListInstanceTemplate" Url="Shared Documents/Meeting Minutes" Path="templates" RootWebOnly="TRUE">    
    <File Url="MeetingMinutes.docx" Type="Ghostable" /> 
    </Module> 
</Elements> 

그것은 나를 위해 일했습니다.

관련 문제