我在这里阅读了一些关于 GAC 的帖子,以及为什么永远不应该通过将共享程序集安装到 GAC 中来部署应用程序。我认为这是有道理的,因为它应该使更新客户端计算机上的应用程序更容易。
但是,我可以看到 GAC 在两个方面很有用,即在开发期间和在构建服务器上。
例如,如果您使用 Microsoft 应用程序块,您可以将它们安装到 GAC 中并在那里引用它们。这是有道理的,因为这样做比拥有和绝对引用路径更容易,并且每个开发人员机器上的路径可能不同。这也比拥有一个包含所有共享组件的共享网络驱动器要好 - 已经做到了。
然后,您可能会对构建服务器执行相同的操作。但是,我看到的唯一问题是您有一个使用 2.0 版应用程序块的应用程序。稍后您将其升级为使用 3.1 版。在某些时候,您可能需要重新创建该应用程序的早期版本来测试客户发现的错误,但是当您重新创建构建时,它将选择应用程序块的 3.1 版本,而不是最初构建时所针对的 2.0 版本。这是真的,还是旧项目文件仍然会引用旧版本的 dll,只要它在 GAC 中?
你对这个特定点有什么想法/意见?
我希望能够将所有版本的共享组件(我们下载或构建)作为 MSI 分发给所有开发人员,这些 MSI 安装到 GAC 中,并作为应用程序安装程序的一部分部署到客户机器上。这是最好的方法吗?