.net - C# 项目引用设置 SpecificVersion = False 似乎不起作用

标签 .net dll reflection assemblyversions

我有以下情况:

  • A.dll 版本 1.0.0.1
  • B.dll 版本 1.0.0.1 依赖于 A.dll。使用 SpecificVersion = False 设置引用

    <Reference Include="A">
        <HintPath>A.dll</HintPath>
        <SpecificVersion>False</SpecificVersion>
    </Reference>
    
  • C.exe 使用 Assembly.LoadFrom("B.dll") B.dll

  • 加载

如果我将 A.dll 的版本更改为 1.0.0.2,我会在 Assembly.LoadFrom("B.dll") 上收到 FileNotFoundException,表示找不到 A.dll 1.0.0.1 (此时只有 A.dll 1.0.02 存在,但这并不重要,因为 SpecificVersion 为 false)

最佳答案

您可以按照 Hans 在评论中建议的那样使用程序集绑定(bind)重定向:

<dependentAssembly>
    <assemblyIdentity name="someAssembly"
      publicKeyToken="32ab4ba45e0a69a1"
      culture="en-us" />

    <bindingRedirect oldVersion="7.0.0.0" newVersion="8.0.0.0" />
  </dependentAssembly>

请参阅此链接了解更多信息 http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx

关于.net - C# 项目引用设置 SpecificVersion = False 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22403138/

相关文章:

c++ - 可以在同一个应用程序中加载不同版本的 DLL 吗?

c# - 是否有可以与传入的 KeyEventArgs 匹配的热键的 .NET 类?

c# - 将服务引用添加到 WCF 并不总是创建 .datasource 文件

c# - .NET ConcurrentDictionary GetOrAdd 方法可以调用异步方法吗?

java - 使用 dll 和 java jni4net 时出现 UnsatisfiedLinkError 异常

c++ - 使用 visual studio 2013 构建 glut dll 时出错

.net - 保持 Sitecore Lucene 索引最新

javascript - .NET 表单未加载到 thickbox 窗口中?

c# - 使用程序集中的 Web 应用程序版本号 (ASP.NET/C#)

c# - 如何从对包含类型的引用中获取 ICollection<> 属性的名称?