在这一行堆栈流程中提出了一些问题,例如 使用GAC的优点和缺点 以及何时何时不安装到GAC?和几个人问它在网络上expamle.对于不使用GAC,我无法提出任何有说服力的论据.我确信我很天真,但是接口就像使用GAC然后不使用它有更多好处(例如性能和版本控制问题).
我为什么不使用GAC?
我该怎么做?我不应该有任何理由吗?
我有一个winform ClickOnce应用程序,其中有大约13mbs的DLL不是我的,所以我没有必要/能够定期更新它们.
DevExpress(3),Microsoft ReportViewer,Microsoft SQL Replication.Microsoft SQL SMO.
如果没有它们被包含在我的ClickOnce应用程序中,我的整个程序大约需要1.5mbs,并且我们的远程站点具有有限的vpn连接,我真的需要将它放在那里.每次我做一个小的应用程序更改时,我无法通过我们的网络向所有用户发送15mb.
谢谢
为了澄清; 我不想使用 ClickOnce 将我的DLL安装到GAC .ClickOnce是我的主要应用程序需要使用的.我想从ClickOnce应用程序中删除该13mbs的DLL并安装它们以便在所有本地系统上使用.
如果我能够通过GAC实现这一目标,那太棒了.我只需要我的主应用程序三聚体更新.
我知道这个问题一遍又一遍,但我似乎无法找到满意的答案.
组装是否应该进入GAC?这些问题:何时何时不安装到gac中以及使用GAC的优点和缺点是什么,准确地解决了这个问题,但答案非常多"建议......"或者"你应该只......".为什么???
很多GAC反对的博客似乎都是从5/6年前开始的,当时.Net的明星正在开始崛起.我们现在还在吗?当然,DLL-Hell已经成为过去,GAC支持并排安装不同版本的"相同"组件?
让我充实我的担忧.我们有越来越多的网络应用程序(到目前为止已有5个).它们的核心是通过API调用和数据库扩展对第三方应用程序的扩展.因此,显然,所有这些应用程序共享大量代码,我们正在开发一组新的核心共享库,以提高我们的质量,可维护性等.
当然,我希望这个共享功能安装一次并共享.所有关于打开维护噩梦的争论似乎都是基于一些不良纪律的世界.如果你打破了ABI,那么碰撞AssemblyVersion就足以让现有的应用程序保持正常运行.
对于不知情的人来说,GAC真的是一个蜜罐吗?我天真吗?当我驳斥"XCopy"安装失败的论点时,我是不是觉得不必要的苛刻?或者它是否有点"宗教",我应该选择看似正确的东西?
谢谢你帮我看清楚.
担