我们有一个使用SharePoint Foundation 2010开发的产品。我们托管端口80,它是MSF 2010的独立安装。现在我需要在不同的端口上为农场环境中的不同客户端部署相同的产品现在我正面临一些挑战:
我们有css,images,jquery文件,它们映射到14个hive文件夹。由于我们在独立环境中部署,因此整个14个hive文件夹为一个客户端提供服务。现在的挑战是,如何管理14个hive文件夹中的这些css,jquery,图像文件夹,用于不同的客户端(不同的Web应用程序)。如果我对一个特定文件的一个js文件(test.js)进行小的更改,它应该影响该客户端本身。它不应该影响其他客户端的js(test.js)文件。 由于我们只有一个wsp解决方案,我们需要将其添加到解决方案存储库中。由于sharepoint仅允许名称和GUID唯一的解决方案。因此,如果我对特定客户端的一个解决方案进行了一些更改,当我将其上传到解决方案存储库时,它将不允许,因为旧的wsp已经存在。那么,如何管理wsp为多个客户服务呢? 。如果我对一个客户进行更改,则不应影响其他客户端。 请让我知道最佳做法。
答案 0 :(得分:1)
鉴于可以在SPSite或SPWeb级别激活和停用某项功能,可以为这种情况提供更优雅的解决方案。
除了将图像,CSS和JS文件打包到14 Hive之外,您实际上可以将它们部署到您的功能在激活功能时在SPSite / SPWeb中创建的新文档库。您还可以配置WSP,以便将JS,CSS和Image文件上载到如此创建的文档库中。
这样就解决了您的一个问题,您可以直接通过文档库手动修改一个客户端的文件,这不会影响其他网站/客户端。
此外,在此配置中,您的单个WSP就足够了,不应该发生冲突,因为当您仅为一个客户端更改某些代码时,您将不会部署全新的WSP。
我发现这篇博文显示了如何实现上述目标:http://jcapka.blogspot.com/2011/05/deploying-document-library-including.html
我还建议您阅读本系列文章,了解更多有关向WSP打包事物的不同选项:http://blogit.create.pt/blogs/andrevala/archive/2007/12/02/SharePoint-2007-Deployment_3A00_-Overview.aspx
它是为SharePoint 2007编写的,但大部分内容在2010年没有改变。
如果上述方法存在任何挑战,您可以找到解决方法。
答案 1 :(得分:0)
将解决方案部署到SharePoint 2010时,它们通常打包为WSP,通常将其命名为业务范围。
如果您使用的是Visual Studio,请打开“查看 - >其他Windows - > Package Explorer”以浏览WSP的内容。
因此,如果您的客户有不同的html,css,javascript,请考虑将它们打包在不同的WSP中。 每个客户一个解决方案
这种方式在14个配置单元下,每个解决方案(WSP)项目将包含在各自的文件夹中,这意味着一个解决方案的css更改不会影响其他解决方案。
如果你有应用程序页面,他们可以去: 14个\ TEMPLATE \ LAYOUTS \的Client_1 \ 14 \ TEMPLATE \ LAYOUTS \的Client_1 \ CSS 14 \ TEMPLATE \ LAYOUTS \的Client_1 \ JavaScript的
14个\ TEMPLATE \ LAYOUTS \的Client_2 \ 14 \ TEMPLATE \ LAYOUTS \的Client_2 \ CSS 14 \ TEMPLATE \ LAYOUTS \的Client_2 \ JavaScript的
14个\ TEMPLATE \ LAYOUTS \ Client_3 \ 14 \ TEMPLATE \ LAYOUTS \ Client_3 \ CSS 14 \ TEMPLATE \ LAYOUTS \ Client_3 \ JavaScript的
如果您有特定于客户的网站部分,他们可以:
14 \ TEMPLATE \ CONTROLTEMPLATES \的Client_1 \ Webpart1 14 \ TEMPLATE \ CONTROLTEMPLATES \的Client_2 \ Webpart1 14 \ TEMPLATE \ CONTROLTEMPLATES \ Client_3 \ Webpart1
您只需在WSP中创建定义良好的目录结构。