1

我正在开发一项功能以安装具有关联列表和列表实例的 WebPart。在部署列表时,会记录以下消息:

Failed to determine definition for Feature with ID
'cdca545a-333a-4b3f-ba15-ac3cdbb12312'.
Skipping this feature for element querying consideration. 

(为清楚起见添加了换行符)

我已经阅读了各种博客上的文章,这些文章建议通过功能搜索来识别有问题的功能。为了搜索 Sharepoint 12 目录,我下载了支持搜索子目录的grep版本,但是以下命令在我的开发 VM 或 Live 服务器上找不到任何匹配项:

grep -S cdca545a-333a-4b3f-ba15-ac3cdbb12312 <path to \12\>

也没有:

grep -S -i cdca545a <path to \12\>

我的开发机器由 Windows 2003 R2、Windows Sharepoint Service 3.0 SP1、Visual Studio 2008 和 STSDev 2008 组成。

目前该功能已部署但无法实例化列表,我正在尝试通过日志文件噪音来解决问题的根源。

4

2 回答 2

3

您可以尝试枚举您的 SharePoint 场上已安装的功能定义。以下是打印每个已安装功能的功能 ID 和显示名称的示例代码:

SPFeatureDefinitionCollection featureDefinitions = SPFarm.Local.FeatureDefinitions;
foreach (SPFeatureDefinition featureDefinition in featureDefinitions)
{
    Console.WriteLine("{0}: {1}", featureDefinition.Id, featureDefinition.DisplayName);
}
于 2009-03-31T15:24:45.953 回答
0

我不确定,但问题可能与列表实例功能有关。

在功能的元素清单中,您可以定义属性“FeatureId”,该属性必须指向包含创建列表实例时要使用的列表定义的功能。

所以这里有两个可能的错误来源。

  1. 如果未定义此 FeatureId,则该功能假定列表定义是在同一功能(列表实例功能)中定义的。如果定义和实例有两个独立的特征,这可能会导致此错误。

  2. 正如我已经说过的,FeatureId 必须是定义要使用的列表定义的功能的 GUID。也许您用新生成的 GUID 替换了这个 GUID,假设这不是列表定义功能的 FeatureId,而是列表实例在 MOSS 中创建时的标识符。

我自己从来没有遇到过这个问题,所以我只能猜测你错误的原因可能是什么。

也许这个博客条目可以帮助您进行进一步的调查。

于 2009-03-31T15:49:22.493 回答