Jas*_*son 45 .net install gac software-distribution
您应该何时安装到GAC中,何时不应该安装?(我指的是,当他们购买我们的产品时,在客户的机器上安装).
我有一个仅用于我的一个应用程序(GAC或无GAC)的程序集?
我有一个所有应用程序共享的程序集(GAC或无GAC)?
我的所有应用程序都可能使用不同版本的程序集(GAC或no-GAC)?
这是三种情况......但我相信还有更多.我不一定只回答这三个问题.
类似的问题:使用GAC有哪些优缺点?
lub*_*sko 38
一般MS指南
GAC实际上是Microsoft常见.NET库的存储库.是的,他们也允许开发人员使用它,但根据经验,如果您不需要GAC,请不要使用它.如果没有伤害,保持简单和本地化.
我会考虑GAC仅出于性能原因,例如,如果您有一些巨大的程序集,请尝试将它们放入GAC和NGEN中.它应该显着提高性能.Microsoft在安装期间为所有标准.NET框架程序集执行此操作(现在您知道为什么安装需要这么长时间).Paint.NET也是这样做的(以改善他们的应用程序的启动时间).但是,我们大多数人都没有在庞大的框架或photoshop竞争对手上工作,因此大多数时候,在GAC中进行组装所带来的性能提升很小.不值得放弃简单的x-copy部署.
某些开发人员可能会使用GAC来确保权限不足的用户无法删除或修改其程序集.
对于其他人来说,它可能是出于版本化的原因,但在这里你应该重新考虑.我不打算重复已经说过的内容,你可以在这里阅读原因.
并且不要忘记,一旦您想要部署到GAC,您的安装程序将需要管理员权限,您几乎可以忘记点击一次部署等...
如果您正在安装asp.net Web应用程序并且您是所有者并且可以完全控制该计算机,那么在某些情况下,将计划在全局程序集缓存中的站点/ Web实例之间共享的程序集放在一起是有意义的.
如果将程序集放在GAC中,则可以显着改善具有相同ASP.NET应用程序的多个实例的服务器上的应用程序的初始加载时间和内存使用量.至少我在我们的服务器上看到过这几十个安装.
如果您要发布包含多个程序集的可重用库,但只有少数几个构成外观,则可以考虑将程序集安装到GAC中(如果该程序包已安装到开发人员的PC中).
想象一下,您运送6个组件,这6个组件中只有一个包含一个外观 - 即其他5个仅由外观本身使用.你发货:
使用您的项目的开发人员想在他们自己的项目中引用MyProduct.Facade.dll.但是当他们的项目运行时,它必须能够加载它所引用的所有程序集 - 递归.如何实现这一目标?通常,它们必须在GAC中的Bin文件夹中可用:
注意:最后一个选项不会让您在将项目运送到生产PC时执行相同操作.您可以在Bin文件夹中发送所有程序集,也可以将它们安装到GAC中 - 所有这些都取决于您的所有愿望.
因此,所描述的解决方案显示了在开发期间将第三方程序集放入GAC的优势.它与生产无关.
您可能会发现,安装到GAC主要是为了解决所需程序集(依赖项)的位置问题.如果将程序集安装到GAC中,您可能会认为它存在于任何应用程序"附近".这就像将.exe的路径添加到PATH变量,但是以"托管方式". - 当然,这是相当简化的描述;)
| 归档时间: |
|
| 查看次数: |
12327 次 |
| 最近记录: |