我们正面临一个独特而痛苦的局面。传统上,我们一直使用 GAC 和策略文件来控制 .NET 应用程序的 DLL 版本。但是,我们有一个非常独特的情况,并且遇到了重大问题,因为我们的一些应用程序不尊重策略文件。尤其是引用具有策略文件的 .NET 1.1 dll 的 .NET 2.0 应用程序。
我们在 Windows 应用程序以及大量 Web 应用程序中混合了动态运行(通过反射加载)的项目。我们希望转向更多的“集中式 DLL 存储”,而不是担心 GAC 版本控制。但是我们似乎无法找到一种方法来告诉我们的应用程序“在此处查找任何 DLL”。
查看一些程序集信息节点(http://msdn.microsoft.com/en-us/library/twy1dw1e.aspx),我们可以找到一部分,但我们必须定义每个应该查找的 DLL,这是不可能的,因为我们有大约 200 个不同的应用程序需要定期更新 web.config,因为我们更新了共享 DLL 的版本。
有没有人知道我们如何移动 DLL 引用?CopyLocal 不是一个选项,因为有时我们需要应用程序来使用共享 DLL 的新版本。至少现在,GAC 也不是一个真正的选择。