Visual Studio意外地在加载时添加功能

时间:2014-09-15 22:13:21

标签: visual-studio sharepoint sharepoint-2010 visual-studio-2013

我在Visual Studio 2013中有一个SharePoint 2010解决方案。每次关闭并重新打开Visual Studio时,都会在解决方案中添加一个新功能,其中包含一个列表。该列表已从其应该处于的另一个功能中删除。它始终是相同的列表。一旦我打开解决方案,这会在我执行任何操作之前弹出“输出”窗口...

  

A new feature Feature2 has been added to the project Solution
  C:\Code\Solution\Package\Package.package (0,0): Added Feature2 to Package

造成这种情况的原因是什么?

我尝试了以下内容:

  1. 重新创建解决方案并复制所有文件 - 无更改
  2. 检查包和项目清单。 - 一切看起来还不错。
  3. 以不同的方式加载项目,包括卸载和重装命令。 - 没有变化
  4. 重新创建它喜欢的列表以隔离其自己的功能 - 无需更改
  5. 重新创建列表应该包含的功能,但它会继续转移到此新功能 - 无需更改
  6. 添加了一个新列表并将其放在功能中的问题列表之后 - VS然后创建了3个新功能!它从我的功能中取出了3个列表,并在每个功能中添加了一个。我想我生气了。

2 个答案:

答案 0 :(得分:7)

如果同一要素中的列表具有相同的类型ID,则工具会将列表移动到新创建的要素中,因为类型在要素中必须是唯一的。您可以查看ListTemplate element上的文档以获取更多信息。

答案 1 :(得分:5)

这是因为功能不能包含Type具有相同值的列表模板。这在此解释:https://msdn.microsoft.com/en-us/library/office/ms462947.aspx

  

类型

     

可选整数。

     

为模板提供唯一标识符。此标识符在功能中必须是唯一的,但不必在所有功能定义或网站定义中唯一。有关默认列表模板类型的列表,请参阅SPListTemplateType。

您可能会发现列表模板的Elements.xml文件包含与Type相同的值。

要解决此问题,您需要编辑列表模板和列表实例的Elements.xml文件。

  1. 将ListTemplate xml元素的类型更改为唯一的整数。
  2. 将ListInstance xml元素的TemplateType更改为相同的整数
  3. 我已经开始选择超过1000的数字以避免冲突(虽然1100,1200,1220和1221是系统类型)