3

我对在 .NET 中使用全局程序集缓存有点陌生,并且对它的工作原理有疑问,因为我无法在网上找到任何东西。

我的 msi(使用 Visual Studio 安装程序扩展创建(使用 Visual Studio 2015))将一些程序集安装到 GAC 和我的应用程序中(这些程序集需要在 GAC 中,因为第 3 方应用程序也需要访问它们)。运行安装程序并启动应用程序后,我注意到当我启动我的应用程序时,来自 GAC 的 dll 副本会在应用程序执行目录中生成。

我的问题是,这是使用 GAC 程序集的正常工作方式吗?我假设程序集只是从 GAC 加载而不制作本地副本。或者这是我的一些错误以及我如何构建我的应用程序(CopyLocal 设置为 true,但据我了解,这仅对 Visual Studio 很重要,对部署后的实际执行没有影响)。

4

1 回答 1

1

根据 Hans 的意见,问题出在我的 msi 上,与 GAC 无关。虽然 msi 将程序集安装到 GAC 而不是执行目录,但当应用程序运行时,创建文件的是 msi“自我修复”,它们不会从 GAC 复制。

于 2018-12-05T09:32:01.430 回答