为了账号安全,请及时绑定邮箱和手机立即绑定

我什么时候应该将程序集部署到GAC中?

我什么时候应该将程序集部署到GAC中?

杨__羊羊 2019-11-28 10:12:48
我实际上想知道我应该在GAC中部署什么样的程序集。情况1:如果在我的解决方案中有多个项目使用log4net.dll,则应将其部署在GAC中吗?情况2:如果我在一台计算机上部署了多个应用程序,每个应用程序都使用log4net.dll,这是否足以将log4net.dll部署到GAC中?
查看完整描述

3 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

log4net.dll的大小为95KB。即使您将其部署100次,对于今天的硬盘也没什么关系。我出于某些原因尝试尽可能避免使用GAC:

  • 这使部署变得更加困难,您必须告诉安装程序要放入GAC中的内容。我喜欢创建简单的xcopy设置(复制要安装的目录,删除要卸载的目录)的可能性。因为这很简单-但是一旦您必须将其放入GAC中就无法正常工作。

  • 您必须在程序集上签名。只是让他们进入GAC...。

  • 一旦开发人员在其Visual Studio项目中引用了GAC的某些内容,则当另一位开发人员在其PC上打开解决方案时,该引用将丢失。他必须首先将所需的程序集放入GAC,然后才能成功打开和编译解决方案。那是真正的PITA。我希望能够签出,编译和运行而不会出现错误。


查看完整回答
反对 回复 2019-11-28
?
慕斯709654

TA贡献1840条经验 获得超5个赞

您应该考虑放入GAC中的唯一种类的组件是成熟且稳定的组件。对于log4net,如果您对所拥有的版本稳定,成熟感到满意,并且不太可能很快更改该版本,请随时将其放入GAC。


不要试图将可能会更改的库放置在GAC中,特别是如果您是在内部开发它们,并且仍有进一步改进的余地。而是将它们部署为私有程序集。


我见过人们传播共享代码的奇迹。他们说诸如“啊,通过此代码更改,我们将同时改进20个应用程序”。问题是,如果弄错了,您还可以同时销毁20个应用程序。我已经看到有人说“我刚刚启动了站点X。请问您可以检查站点AW以确保它们仍然可以工作吗?”。


专用程序集可能会很痛苦,但是您可能会遇到的问题仅限于针对它们部署的特定应用程序。如果您不能100%确定装配是否稳定且不成熟,请不要将其放入GAC中。


相信我,你会睡得更好。


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 440 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信