将多个功能打包到单个WSP解决方案文件中

时间:2009-02-20 07:09:00

标签: sharepoint moss sharepoint-2007 wspbuilder wsp

我正在开发一个sharepoint功能,其中包括两个列表定义,2个webpart,一个功能接收器程序集和一个InfoPath表单。

我必须使用WSPBuilder打包这些,并且要求将所有这些功能打包到一个WSP解决方案文件中。

现在,WSP构建器需要特定文件夹结构中的部署文件,与12个共享点Hive相同。

我的问题是我的所有功能都是单独开发的,由多个项目文件组成,这些文件不一定在同一个文件夹结构中。

如何使用WSP Builder将多个功能打包到单个WSP解决方案中?

5 个答案:

答案 0 :(得分:6)

也许这会有所帮助:http://www.codeplex.com/wspbuilder/Thread/View.aspx?ThreadId=43125

最终,我认为通过使用像NANT这样的工具构建自己的wsp文件可以获得很大的灵活性。

答案 1 :(得分:5)

在wspbuilder中,您无需采取任何特定操作即可在同一解决方案包中使用多个功能。 您需要做的就是为Visual Studio中的解决方案内的12 \ TEMPLATE \ FEATURES文件夹下的每个功能创建一个新文件夹,并将相应的feature.xml文件放在该文件夹中。例如,您可能有:

12个\ TEMPLATE \ FEATURES \ FancyFeature \ feature.xml的 12个\ TEMPLATE \ FEATURES \ ReallyCoolFeature \ feature.xml的

......等等。

构建解决方案后,wspbuilder将读取12文件夹的整个树结构,并在wsp的manifest.xml文件中附加相应的节点。 “TEMPLATE”文件夹中的任何其他可能的子文件夹也是如此,包括IMAGES,LAYOUTS等:在部署时,它们都将被复制到真正的12个hive中的正确文件夹中,因为解决方案中的12个文件夹是为了是原来的复制品。

为了更好地理解,在visual studio解决方案中的12文件夹中创建一些文件夹和文件,编译项目并查看生成的manifest.xml文件。

答案 2 :(得分:0)

简单的答案是,您必须将各个项目的所有文件复制到一个主项目中,以便您的解决方案。只要您的所有个人功能文件都位于“12”文件夹中的正确位置,您就可以继续使用。

注意: 您需要检查所有对任何程序集的引用,因为此解决方案将为您的所有自定义逻辑创建1个程序集。

答案 3 :(得分:0)

我在向wsp添加dll时遇到了麻烦,所以我写了一篇关于它的简短文章:How to Add DLLs to a WSP Solution

答案 4 :(得分:0)

我通常在解决方案中有一个项目被指定为“主要”项目。我设置了依赖项,以便最后构建这个“主”项目。然后对于我想要包含在wsp包中的其他项目,我编辑“Post Build Events”以将12个文件夹的内容和项目构建的dll的内容编辑到主项目的相应文件夹中。然后在构建整个解决方案之后,我可以为主项目构建wsp包,并知道它包含所有内容。