2009-08-27 51 views

回答

10

这由解决方案的manifest.xml中的DeploymentTarget属性确定。如果您在维护该文件本身,使用下面的语法将代码部署到GAC:

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

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

+0

感谢Alex,我使用WSP Builder,所以我想我得到了这个好处。 – 2009-08-31 05:34:49

2

由于该命令说addsolution它只是将解决方案添加到解决方案商店。您需要致电部署解决方案以获取所需材料。下面是你需要调用

stsadmin -o deploysolution -name [solutionname] -allowgacdeployment 

注意allowgacdeployment是强制性的文件放在海关总署的指令。你可以通过这个命令对此命令提供更多的帮助。

STSADM.EXE -help deploysolution 

有一个替代选项可以通过UI来完成这个任务。转到中央管理 - >操作 - >解决方案管理选择解决方案并说部署。这将是更简单的方法来快速完成它。

+1

我认为解决方案的清单文件必须定义程序集应该部署到GAC而不是Web应用程序的bin文件夹也很重要。这可以通过节点的DeploymentTarget属性来定义。 – Flo 2009-08-27 08:22:36

+2

是的,我同意。如果你想使它非常简单,你可以使用http://www.codeplex.com/wspbuilder在你需要将程序集放到名为GAC的文件夹中,这样该属性就被工具保护了。 – Kusek 2009-08-27 09:02:31

4

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

+0

我可以在Visual Studio 2010中确认这适用于我。我认为这是可维护的开箱即用解决方案的最完整答案。 – 2012-12-21 18:17:33