猿问

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

我实际上想知道我应该在GAC中部署什么样的程序集。

情况1:如果在我的解决方案中有多个项目使用log4net.dll,则应将其部署在GAC中吗?

情况2:如果我在一台计算机上部署了多个应用程序,每个应用程序都使用log4net.dll,这是否足以将log4net.dll部署到GAC中?


杨__羊羊
浏览 441回答 3
3回答

慕姐8265434

log4net.dll的大小为95KB。即使您将其部署100次,对于今天的硬盘也没什么关系。我出于某些原因尝试尽可能避免使用GAC:这使部署变得更加困难,您必须告诉安装程序要放入GAC中的内容。我喜欢创建简单的xcopy设置(复制要安装的目录,删除要卸载的目录)的可能性。因为这很简单-但是一旦您必须将其放入GAC中就无法正常工作。您必须在程序集上签名。只是让他们进入GAC...。一旦开发人员在其Visual Studio项目中引用了GAC的某些内容,则当另一位开发人员在其PC上打开解决方案时,该引用将丢失。他必须首先将所需的程序集放入GAC,然后才能成功打开和编译解决方案。那是真正的PITA。我希望能够签出,编译和运行而不会出现错误。

慕斯709654

您应该考虑放入GAC中的唯一种类的组件是成熟且稳定的组件。对于log4net,如果您对所拥有的版本稳定,成熟感到满意,并且不太可能很快更改该版本,请随时将其放入GAC。不要试图将可能会更改的库放置在GAC中,特别是如果您是在内部开发它们,并且仍有进一步改进的余地。而是将它们部署为私有程序集。我见过人们传播共享代码的奇迹。他们说诸如“啊,通过此代码更改,我们将同时改进20个应用程序”。问题是,如果弄错了,您还可以同时销毁20个应用程序。我已经看到有人说“我刚刚启动了站点X。请问您可以检查站点AW以确保它们仍然可以工作吗?”。专用程序集可能会很痛苦,但是您可能会遇到的问题仅限于针对它们部署的特定应用程序。如果您不能100%确定装配是否稳定且不成熟,请不要将其放入GAC中。相信我,你会睡得更好。
随时随地看视频慕课网APP
我要回答