我在Visual Studio 2010中为我的SharePoint 2010项目制作了一个ContentType,第一次通过WSPBuilder部署wsp时没有遇到任何问题,但现在每次我尝试部署时,它一直说它无法激活功能,因为"在当前网站集中或子网站中发现了功能{60938308-3563-497c-bc55-b2ae847ca8b8}中定义的ID为{在此处插入随机guid}的字段(激活我在网站上的内容类型的功能)。"
contenttype和网站列是在rootweb上创建的,即使我试图停用该功能或完全卸载它,网站列和contenttype也不会从contenttype库或网站列库中删除。
这怎么可能?
我使用纯特性和XML功能。不涉及事件接收器。
SharePoint不允许您删除正在使用的网站列和内容类型。这使得升级过程有点棘手。
-
如果只想在内容类型中添加字段,可以使用SharePoint 2010中的功能升级功能。这篇系列博文应该会对您有所帮助:http://www.sharepointnutsandbolts.com/2010/06/feature-upgrade-part-1-basicals.html
-
如果您需要进行任何其他更改(删除字段、更改类型等),则需要采取不同的方法。您将创建一个新的内容类型,它继承并最终替换现有的内容类型。此处讨论此策略:http://msdn.microsoft.com/en-us/library/a5343504.aspx
除了查看Rob的建议:
是否安装了Visual Studio SP1?我在安装SP1之前收到了这个错误,解决方法是关闭所有Visual Studio实例并重新启动它。启动后,可以再次进行部署。