2

我有以下情况:

  • 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,我会收到一个 FileNotFoundExceptionAssembly.LoadFrom("B.dll")说它找不到 A.dll 1.0.0.1(当时只有 A.dll 1.0.02 存在,但这并不重要,因为 SpecificVersion 是假的)

4

1 回答 1

2

您可以按照 Hans 在他的评论中建议的那样使用 Assembly Binding Redirection:

<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

于 2014-03-14T17:13:03.890 回答