是否可以将解决方案部署到Web应用程序,以便其功能仅在此Web应用程序中可见?

时间:2011-01-13 11:19:57

标签: sharepoint deployment sharepoint-2010

我有一个具有多个站点/网络范围功能的解决方案(SP2010)。我想将此解决方案部署到一个特定的Web应用程序。这些功能应仅显示在此Web应用程序中的站点/网站中。

通过将安全控制条目添加到我的解决方案,我可以将解决方案部署到特定的Web应用程序。但是,我的解决方案的功能仍然出现在所有其他Web应用程序中。

有关SO的类似问题,请参阅Creating a solution that deploys to selected WebApplications but copies the assembly to GAC。从给出的答案来看,似乎不可能。然而,TS自己说它实际上是在工作(对他而言)。

修改 为了使事情更清楚,我的困惑可能最好通过以下问题进行总结:

为什么可以在尚未部署到的Web应用程序上激活某项功能?

5 个答案:

答案 0 :(得分:2)

不,您无法控制Web /网站范围功能对单个Web应用程序的可见性。它们将在所有这些中可见或不显示。

我的第一个问题是你为什么要这样的限制?功能应该是可重用的组件,一旦部署就可以在任何地方激活。但请注意,激活需要管理员优先。

如果你真的想限制:
- 隐藏它并使用powershell或stsadm脚本进行部署。

答案 1 :(得分:1)

阻止用户在Web应用程序中启用功能的一种简单方法是使所有站点范围的功能都依赖于Web应用程序作用域功能。

答案 2 :(得分:0)

这种可见性肯定是一种痛苦,特别是当你有大量的网站集是一个巨大的可变用户群时。在功能列表中添加新内容以供人们使用,这可能会有问题,因为它可能会导致更多的支持头痛而不是值得。

如果您真的希望不让某些内容暴露给他人,您很可能需要将这些功能部署为隐藏功能,然后从命令行为需要它们的人激活它们。我想您也可以编写自己的功能管理屏幕,该屏幕会考虑当前的网络应用程序。

答案 3 :(得分:0)

使用Sandbox解决方案。因为Sandbox解决方案未存储在文件系统(物理路径)中,并且程序集无法部署到全局程序集缓存(GAC)。

答案 4 :(得分:0)