使用DocumentTemplate部署ContentType

时间:2014-06-16 13:46:48

标签: sharepoint document content-type

首先,我创建了一些测试列...
其次,我创建了一个新的内容类型(从Document中派生)。

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType ID="0x0101000F16F9EDC2D547C48480B02B918168DD" Name="MyDocContentType1" Group="Custom Content Types" Description="My Document Content Type 1" Inherits="TRUE" Version="0">
    <FieldRefs>
      <FieldRef ID="{d17ecdc8-991a-4efc-a758-bbb522dd2f62}" DisplayName="My Test Column 1" Required="FALSE" Name="MyTestColumn1" />
      <FieldRef ID="{8e9ef300-b566-4939-8b3c-760e13afb6d5}" DisplayName="My Test Column 2" Required="FALSE" Name="MyTestColumn2" />
    </FieldRefs>
    <DocumentTemplate TargetName="~site/_cts/MyDocContentType1/MyDocumentTemplate1.dotx" />
  </ContentType>
</Elements>

接下来,我创建了一个模块,将我的单词2013模板文件(.dotx)部署到/_cts//MyCustomTemplate1.dotx

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="DocumentTemplates" RootWebOnly="TRUE" Url="_cts/MyDocContentType1">
    <File Path="DocumentTemplates\MyDocumentTemplate1.dotx" Url="MyDocumentTemplate1.dotx" Type="Ghostable" />
  </Module>
</Elements>

将内容类型添加到库可启用文档模板...
例如。当我创建一个新项目&#34; MyDocContentType1&#34;它打开了Word 2013.
但是文档模板未正确绑定到服务器 - 文档信息面板不会显示,我无法添加任何引用sharepoint内容类型列的快速部分。

通过SharePoint Web UI分配文档模板时,它确实有效。

有什么想法吗?

编辑:单词模板(.dotx)已经知道SharePoint列。在上一步中,我手动分配了DocumentTemplate(以设计单词模板)。既然.dotx模板功能已完成,我想将其部署为SharePoint解决方案的一部分(例如,部署到新创建的网站集)。

编辑当然,它使用通过功能事件接收器分配DocumentTemplate属性的编程方法。那不是我要找的解决方案。仅声明。

对我而言,它看起来像一个bug。如果我转到内容类型,编辑/更新文档模板(更新 - 不上传新文档!)并从该内容类型创建一个新文档,它开始工作......?

1 个答案:

答案 0 :(得分:1)

我假设您直接在word中创建了* .dotx文件并将其添加到Visual Studio中。

它不起作用的原因是dotx文件需要引用Word文件本身编码的SharePoint字段。

我建议:

  • 在没有任何文档模板的情况下部署您的内容类型
  • 将内容类型添加到文档库
  • 编辑新创建的列表内容类型(在文档库中)并上传空白空* .dotx模板:现在,SharePoint将创建dotx文件的副本,添加所有内容类型列,并将新的dotx文件保存在文档库的Forms /文件夹中;在此之后,您有一个空白的dotx文件,其中包含正确的关联 - 通过在文档库中添加包含您的内容类型的新文档并检查信息面板来测试它
  • 在SharePoint Manager中打开文档库(或使用SharePoint Designer,或导航到Forms /文件夹)并下载SharePoint生成的dotx文件
  • 根据需要自定义此dotx文件
  • 删除文档库并撤消wsp包
  • 将最终的dotx添加到您的解决方案中,您的内容类型就像之前一样