我真的需要使用全局程序集缓存 (GAC) 吗?
我已经构建 .NET Web 应用程序很多年了,但我从未使用过 GAC?
我缺少什么? 或者我最好远离它?
I've been building .NET web applications for many years now, and I never use the GAC?
What am I missing? Or am I better off staying away from it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
仅当您注册要重用的库时,GAC 才有用。 在没有共享库的情况下运行 Web 应用程序并不是必须的。
The GAC is only useful if you register libraries which you're going to reuse. It is in no way obligatory to use to run a WebApp without shared libraries .
GAC主要用于存储共享库,特别是当您的应用程序需要特定版本时。 这样,我就可以在同一台计算机上安装 FooLib 1.0 和 FooLib 2.0,并且需要其中任何一个的应用程序都可以找到它们想要的应用程序。 无论如何,Web 应用程序似乎并没有使用大量的外部库。
在另一个示例中,SSIS 要求您的自定义工具位于 GAC 中。 主要疼痛。
The GAC is mainly for storing shared libraries, especially when your application requires a specific version. This way, I could install FooLib 1.0 and FooLib 2.0 on the same machine, and applications that require either one could find the ones they want. Web applications don't seem to use a whole lot of external libraries anyways.
In another example, SSIS requires that your custom tools are in the GAC. Major pain.
正如 Vincent 所说,GAC 对于希望支持独立于客户端应用程序的服务的第三方库供应商来说非常重要。 换句话说,如果库中存在错误,您可以升级库并修复使用该库的所有应用程序,而不必知道它们是哪些应用程序等。
实际上,大多数 .NET 应用程序(到目前为止)都是 Web 应用程序应用程序,因此事实证明它对微软来说最有用,因为很少有其他人具有将更新推送到最终用户计算机的常规能力。
Like Vincent says, the GAC is important mostly for third-party library vendors who want to support servicing independent of client applications. In other words, if there's a bug in the library, you could upgrade the library and fix all applications that use the library, without having to know which applications they are, etc.
In practice, most .NET applications (so far) are web applications, so it turns out that it's mostly useful for Microsoft, as few other people have routine ability to push updates to end-user machines.