多年来我一直在构建 .NET Web 应用程序,但我从未使用过 GAC?
我错过了什么?还是我最好远离它?
GAC 仅在您注册要重用的库时才有用。在没有共享库的情况下运行 WebApp 绝不是强制性的。
GAC 主要用于存储共享库,尤其是当您的应用程序需要特定版本时。这样,我可以在同一台机器上安装 FooLib 1.0 和 FooLib 2.0,并且需要其中任何一个的应用程序都可以找到他们想要的。无论如何,Web 应用程序似乎并没有使用大量的外部库。
在另一个示例中,SSIS 要求您的自定义工具在 GAC 中。大痛。
正如 Vincent 所说,GAC 主要对希望支持独立于客户端应用程序的服务的第三方库供应商很重要。换句话说,如果库中存在错误,您可以升级库并修复所有使用该库的应用程序,而无需知道它们是哪些应用程序等。
在实践中,大多数 .NET 应用程序(到目前为止)都是 Web 应用程序,因此事实证明它对 Microsoft 最有用,因为很少有其他人具有将更新推送到最终用户计算机的常规能力。