我是.NET开发人员职业生涯中的大部分ASP.NET.WCF开发人员,因此我非常习惯于将所有DLL都放在IIS目录的bin文件夹中.
但是,在最近的一个项目中,我们必须在WCF Web服务和几个.exe程序之间共享几个DLL(大约50个),因此我们的一个团队成员建议我们可以将这些DLL安装到GAC中.
我看不出这个想法有什么问题,但我只是觉得将特定产品的数据访问和业务逻辑等域DLL安装到GAC中是错误的,因为这些DLL不像System.Data,它可以在许多中重复使用不同的产品.
您是否将产品的DLL安装到GAC中?
警告,这是一个圣战区
我已经看到了两种方式,如果共享DLL我们通常GAC它(这是我们简单的经验法则).基本上我们不希望多次出现相同的DLL.但是,如果库不稳定,我们会绕过此规则,也就是经常更改/新版本.
有些人认为最好自己封锁(置于垃圾箱中),以防止有人重新安装可能导致应用程序崩溃的gac'd dll.通常,无论何时使用共享库,都需要在进行更改时注意.如果你打算打破其他人,你可能想考虑增加版本.然后,您可以将两个版本部署到GAC.
反对放置bin的另一个论点是,如果要安装新版本,则必须将其放在N个不同的位置.
我的偏见通过我的回答显示(我更喜欢gac而不是重复)
大多数情况下,我们不会将应用程序.DLL放在GAC上,这会导致一些重复,但是,超时会简化问题,因为版本控制(您拥有的应用程序越多,它们以不同的速度发展的越多)比浪费更难一些(便宜的)磁盘空间.
| 归档时间: |
|
| 查看次数: |
443 次 |
| 最近记录: |