在List中找不到ContentType DocumentTemplate

时间:2010-03-19 15:06:40

标签: sharepoint sharepoint-2007

我有以下功能:

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

其中包含以下Elements.xml:

<?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:

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

我部署解决方案,激活该功能,并创建列表模板的实例。我进入图书馆并选择设置&gt;文档库设置&gt;内容类型:会议纪要&gt;家长:会议纪要&gt;高级设置。我现在处于网站内容类型的高级设置中。现有文档模板的URL是MeetingMinutes.docx,并且有一个(编辑模板)链接指向http://myserver/sites/testsite/_cts/Meeting%20Minutes/MeetingMinutes.docx。一切都很闪亮。

但是,我按了两次后退按钮,所以我回到了列表内容类型的设置中。这次单击高级设置时,现有文档模板的URL仍为MeetingMinutes.docx,但没有(编辑模板)链接。令人不安。

按下,我返回AllItems.aspx并点击New&gt;会议记录。当Word加载时,我看到一个小的打开对话框,上面写着:打开:http://myserver/sites/testsite/Shared%20Documents/Forms/Document/MeetingMinutes.docx,Word回应:“Word无法读取此文档。它可能已损坏。”

因此,文档模板在网站内容类型中正常工作(它对我没有好处),但不在列表内容类型(我真正需要它)中工作。现在,我知道我可以把它放在_layouts中,但是从我read开始,_cts就是the way来做。我做错了什么?

2 个答案:

答案 0 :(得分:2)

Rich,我不确定发生了什么,因为我使用你指定的功能和元素文件创建了一个功能,它对我来说是正常的。

但有一点不同。

当我从内容类型创建库中的新文档时,模板URL是

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

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

不知何故,您的内容类型似乎正在寻找模板的错误文件夹。我希望能给你一些线索。

答案 1 :(得分:1)

我对列表内容类型的文档模板有同样的问题。

我所做的就是SharePoint从网站创建库时所执行的操作:将文件模板复制到与内容类型同名的子文件夹中库的“Forms”文件夹中。

您只需在项目的某处添加模块元素:

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

它对我有用。