我已经使用VseWSS 1.3创建并部署了MOSS站点定义
我安装了站点定义并创建了一个新站点,一切都很正常。但是,当任何人进入该WebApplication上的任何网站(在任何网站集中)并转到功能列表时,所有这些功能都会出现在列表中。
我有大约15种内容类型,其中有15个基于这些内容类型的列表,每个列表都有自己的实例和ItemRecievers。正如你可以想象的那样,列表中有很多特性。我的Sharepoint管理员看到了这一点,然后就崩溃了。
他希望看到一个单独的条目,就像您看到的MOSS Enterprise功能等,它激活了我的解决方案的所有功能。我看到有人提到了“功能包”这一术语--与此相关,但我不知道这是否只是他们的术语。
我该怎么做呢?这是很容易做到的吗?还是我必须手动进入并破解VseWSS生成的文件?
詹姆斯:-)
发布于 2011-06-15 00:56:40
VseWSS并不适合生产解决方案-它可以提取解决方案的元素,但倾向于(在我有限的经验中)设置它们都将是独立的功能。
不幸的是,你的管理员是对的。您所拥有的--那些内容类型、列表定义和列表实例--是许多特性元素。一个Feature可以包含多个元素,通常在一个名为‘.xml’的文件中。对此有一个很好的描述:
http://msdn.microsoft.com/en-us/library/ms460318(v=office.12).aspx
(请注意,在Visual Studio2010中,这些元素是visual Studio项目中的“SharePoint项”。但我离题了)
我总是倾向于使用VseWSS来创建我需要的文件--我的列表定义等--然后将这些文件复制到WSPBuilder项目中进行打包,以便进行安装。如果您还没有使用过WSPBuilder,我建议您将其用于SP2007开发-尽管它在很大程度上已被Visual Studio自己的SP2010工具所取代。这需要一点理解,但随后您会意识到,如果您只需将文件复制到正确的位置,您就可以轻松构建您的解决方案。
(您应该在WSP文件中部署您的解决方案。始终在WSP文件中部署解决方案。)
(此外,您不应该‘黑客’任何文件,只需在文件系统上重新排列它们,以便WSPBuilder正确地打包它们。请参阅WSPbuilder文档。)
发布于 2011-06-15 01:00:34
一个简单的选择是简单地将功能元素修改为隐藏,并将您的主要功能创建为具有激活依赖关系的可见功能。这意味着一旦激活了主要功能,所有的依赖功能都将自动激活。
http://blogs.msdn.com/b/jjameson/archive/2007/03/22/scope-dependencies-for-sharepoint-features.aspx
https://stackoverflow.com/questions/6346691
复制相似问题