这在某种程度上是以下内容的后续:Reference alternate to reference assembly in Visual Studio 2010?
我正在引用核心框架 DLL 的替代版本。 Visual Studio(和本地调试器结构)引用此文件没有问题。此外,该文件被标记为复制本地
。但是,当我部署到云时,我得到:
Could not load file or assembly '(assembly strong name)' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.
使用远程桌面,我确定正确的文件确实与其他依赖项一起位于 E:\approot
文件夹中。我假设结构正在 GAC 中查找而不是使用我的文件。
有没有办法强制它首先使用我的 DLL?
注意: 替换 .NET CLR DLL 的整个概念无论如何都是一个巨大的 hack,因此欢迎 hack。当 .NET 4.5 支持我需要的功能时,这一切都将被删除。
更多信息:看来我的 Web 角色工作正常,但当我的辅助角色尝试构建我的 Autofac 容器时,它会因该错误而终止。即使我在构建之前显式加载程序集,也会发生这种情况,这也可以正常工作。
最佳答案
您可以运行融合日志来查看它是从哪里加载的。如果其他程序正在运行并首先加载该文件,您可能需要为该进程创建一个 .config 文件。您也许可以做一些奇特的事情,例如创建一个新的应用程序域并在那里加载您的程序集,就像这对动态程序集所做的那样:
http://blogs.msdn.com/b/tom/archive/2007/12/05/dynamic-assemblies-and-what-to-do-about-them.aspx
关于c# - Azure 引用了错误的 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9160675/