【问题标题】:SharePoint: Will deploying a WSP install DLL's in Gac?SharePoint:部署 WSP 会在 Gac 中安装 DLL 吗?
【发布时间】:2009-08-27 06:26:02
【问题描述】:

我想知道,如果我使用 stsadm 命令部署 WSP:

 stsadm -o addsolution –filename myWSP.wsp

这是否还会将所需的 DLL(已包含在 WSP 中)安装到 GAC 中?

或者这是另一个手动过程?

【问题讨论】:

    标签: sharepoint


    【解决方案1】:

    这由解决方案的manifest.xml 中的DeploymentTarget 属性 确定。如果您自己维护此文件,则使用以下语法将代码部署到 GAC:

    <Assemblies>
       <Assembly DeploymentTarget="GlobalAssemblyCache" 
                 Location="MyGAC.dll" />
    </Assemblies>
    

    如果您使用工具来创建解决方案,则取决于工具。 WSPBuilder 默认部署到 GAC,但是可以另外配置。有关如何部署到 bin 的步骤,请参阅 this article by Tobias Zimmergren 的“为 BIN 而不是 GAC 确定程序集范围(包括代码访问安全生成)”部分。

    【讨论】:

    • 感谢 Alex,我使用 WSP Builder,所以我想我得到了这个好处。
    【解决方案2】:

    如果您通过 VS 构建包,请打开包并单击底部的高级选项卡。您将能够从此处添加其他程序集并指定部署目标。我强烈建议这样做而不是直接更新 XML……但这只是我自己。

    【讨论】:

    • 我可以确认这适用于我在 Visual Studio 2010 中。我认为这是可维护的开箱即用解决方案的最完整答案。
    【解决方案3】:

    正如命令所说的addsolution,它只是将解决方案添加到解决方案商店。您需要调用命令 deploysolution 来放置这些东西。这是您需要调用的命令

    stsadmin -o deploysolution -name [solutionname] -allowgacdeployment
    

    请注意,allowgacdeployment 是强制将文件放置到 gac 的。您可以通过此命令获得更多帮助

    STSADM.EXE -help deploysolution
    

    还有一个替代选项可以通过 UI 完成此操作。转到 Central Admin -> Operations ->Solution management 选择解决方案并说部署。这将是快速完成它的更简单方法。

    【讨论】:

    • 我认为同样重要的是,解决方案的清单文件必须定义程序集应该部署到 GAC 而不是 Web 应用程序的 bin 文件夹。这可以由 节点的 DeploymentTarget 属性定义。
    • 是的,我同意。如果您想让它变得非常简单,您可以使用codeplex.com/wspbuilder,您需要将程序集拖放到名为 GAC 的文件夹中,以便工具处理该属性
    猜你喜欢
    • 2011-09-07
    • 2014-05-07
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多