我对使用.NET中的Global Assembly Cache有点陌生,并且由于无法在线查找任何东西而对它的工作方式有疑问。
我的msi(使用Visual Studio安装程序扩展名创建(使用Visual Studio 2015)创建)将许多程序集安装到GAC和我的应用程序中(这些程序集必须在GAC中,因为第三方应用程序也需要访问它们)。运行安装程序并启动应用程序后,我注意到当我启动应用程序时,GAC中dll的副本是在应用程序执行目录中制作的。
我的问题是,这是如何正常使用GAC的程序集吗?我假设这些程序集将仅从GAC加载而无需进行本地复制。还是这是我自己以及我如何构建应用程序的一些错误(CopyLocal设置为true,但据我了解,这仅对Visual Studio有意义,并且对部署后的实际执行没有影响。)
答案 0 :(得分:1)
根据汉斯的意见,问题出在我的msi上,与GAC无关。虽然msi将程序集安装到GAC而不是执行目录,但运行应用程序时,创建文件的是msi“自我修复”,不会从GAC复制这些文件。