代码之家  ›  专栏  ›  技术社区  ›  Hinek

创建部署到所选Web应用程序但将程序集复制到GAC的解决方案

  •  4
  • Hinek  · 技术社区  · 14 年前

    使用VisualStudio 2010创建SharePoint2010解决方案时,我希望将我的解决方案部署到选定的Web应用程序(不是全部部署)。我可以通过将程序集部署目标(项目属性)切换到WebApplication来实现这一点。但随后,大会将不会部署到GAC。

    是否有允许部署到特定Web应用程序,但将程序集部署到GAC的设置?

    编辑:也许这个问题很难理解,下面举个例子:

    在SharePoint场上,每个客户都有一个Web应用程序。由特定客户订购的自定义功能只能在客户的webapp上使用。此功能不应出现在其他Web应用程序的网站集功能或网站功能中。

    但功能范围必须是站点或Web,才能仅在客户门户的某些部分中激活。

    4 回复  |  直到 11 年前
        1
  •  3
  •   Ashish Patel    14 年前

    我不太确定您的最终目标是什么,但您可能需要记住以下几点:

    将程序集目标设置为Web应用程序时,已编译的程序集(.dl)将部署到Web应用程序的bin文件夹,而不是GAC。

    vs.net部署解决方案(.wsp)的Web应用程序由项目的“站点URL”属性确定。

    除非您正在创建沙盒解决方案,否则您在服务器上部署的功能对所有Web应用程序都是可用的,而与您将WSP部署到的Web应用程序无关。有时,您可能仍然希望将wsp部署到特定的Web应用程序,因为wsp可能会根据wsp的内容执行以下操作。例如,它可以将程序集部署到Web应用程序的bin文件夹,可以将.resx文件复制到Web应用程序的文件夹,也可以修改web.config以插入功能等所需的条目。

    如果要将WSP部署到多个Web应用程序,可以选择以下几个选项:使用vs.net的后期生成命令、使用管理中心、使用staadm或使用PowerShell。

    如果您使用的是SharePoint 2010,则可以选择将解决方案严格部署到单个网站集,这不会影响同一Web应用程序中的其他网站集或其他Web应用程序中的其他网站集。这些被称为“沙盒解决方案”。它们非常适合在多个客户共享同一个农场的情况下托管场景。毫无疑问,这是SharePoint2010最大的增强功能之一。同样,它们属于网站集,而不是Web应用程序(可以有多个网站集)。但在沙盒解决方案方面(出于合理的原因)存在一些限制。更多信息?请参阅以下链接:

    http://msdn.microsoft.com/en-us/magazine/ee335711.aspx

    http://technet.microsoft.com/en-us/library/ee721992.aspx (包括限制)

    http://msdn.microsoft.com/en-us/sharepoint/ee513156.aspx (视频培训)

        2
  •  3
  •   Hinek    14 年前

    好了,现在我明白了:只要wsp包含一个safecontrol元素,SharePoint就会要求部署一个Web应用程序。因此,如果将虚拟Web部件添加到vs项目中,或者直接将SafeControl元素添加到vs中的包中,则不会自动全局部署WSP。

        3
  •  0
  •   sssreddy    14 年前

    只是一个想法-为什么不控制Web应用程序上的功能激活而不是部署呢?