Sharepoint List已添加到创建 - >功能部署中的自定义列表

时间:2009-03-31 15:04:41

标签: visual-studio sharepoint sharepoint-2007 caml

我正在构建SharePoint功能,以在“Web”范围内部署简单的WebPart和自定义列表。

  1. 部署解决方案后,我的列表立即可用于网站操作 - >网站设置 - >自定义列表。
  2. 如果您尝试创建列表实例,我会收到“找不到文件”
  3. 如果激活该功能,则会将列表模板的第二个副本添加到“自定义列表”标题中。
  4. 无法使用相同的“找不到文件”错误创建列表
  5. 在停用功能时,一个列表模板消失
  6. 在收回解决方案时,最后一个列表模板消失
  7. 涉及的文件:

    • schema.xml长5000行
    • feature.xml如下
    <?xml version="1.0" encoding="utf-8" ?>
    <Feature Id="78a8eaad-2160-434c-81c2-6c5f7ce94ade" Title="WeekWidget" Description="Displays A, B or H based upon a configurable SharePoint List." Version="1.0.0.0" Creator="Cardinal Newman Catholic School // Richard Slater" Scope="Web" ImageUrl="WeekWidget\WeekWidgetLogo.jpg" xmlns="http://schemas.microsoft.com/sharepoint/" DefaultResourceFile="core">
      <ElementManifests>
        <ElementManifest Location="ListTemplates\WeekCalendar.xml" />
        <ElementFile Location="WeekCalendar\Schema.xml" />
      </ElementManifests>
    </Feature>
    
    • WeekCalendar.xml如下
    <?xml version="1.0" encoding="utf-8" ?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <ListTemplate Name="WeekCalendar" DisplayName="Week Calendar" Description="List of Weeks." BaseType="0" Type="100" OnQuickLaunch="TRUE" SecurityBits="11" Sequence="410" Image="/_layouts/images/itgen.gif" />
    </Elements>
    

    我认为“找不到文件”错误是另一个问题的症状,但是在解决方案部署中不应该添加列表模板。我做错了什么?

2 个答案:

答案 0 :(得分:1)

您是自己连接所有功能文件还是使用工具?通常,404表示配置文件中的一个“魔术字符串”已关闭。此外,此处指定的目录结构看起来很可疑:

<ElementManifests>
  <ElementManifest Location="ListTemplates\WeekCalendar.xml" />
  <ElementFile Location="WeekCalendar\Schema.xml" />
</ElementManifests>

您应该尝试将所有功能支持文件部署到同一目录。您是否在ULS日志中找到了错误(&lt; 12 hive&gt; / LOGS)?这也可能提供一些线索。

答案 1 :(得分:1)

我认为问题可能与单独的目录结构有关 - 我通常将所有列表文件部署到同一文件夹(schema.xml和weekcalendar.xml,在您的情况下;将feature.xml保留在列表目录之外)

打开详细日志记录并检查12-hive日志以查看找不到的文件。

检查schema.xml并确保list元素上的name属性与包含您的功能的文件夹的名称相匹配。另请注意此元素的Url属性... VSeWSS会将URL设置为正在进行逆向工程的列表的名称,因此我将其更改为“pages \ viewpage.axp”。

在schema.xml中的默认视图元素上,尝试添加SetupPath =“pages \ viewpage.aspx”。确保那里还有一个WebPartZoneId =“Main”属性。