我有以下功能:
<?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来做。我做错了什么?
答案 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>
它对我有用。