C# 如何在C语言中的项目构建过程中忽略引用版本#

C# 如何在C语言中的项目构建过程中忽略引用版本#,c#,visual-studio-2010,.net-4.0,C#,Visual Studio 2010,.net 4.0,我有两个项目,我通过反射调用它们,其中一些项目使用外部dll,当我编译我的项目时,每件事情都可以正常工作,当我将外部dll更改为新版本(新的汇编版本)时,问题就会发生,即使外部dll没有更改其代码,如果我重新编译我的项目,它也可以正常工作。问题是我如何构建我的项目并告诉他们忽略引用的汇编版本。 这是我在运行时遇到的异常 无法加载文件或程序集“TheExternalDL,Version=9.1.0.61,Culture=neutral,PublicKeyToken=111965d80b18ee08

我有两个项目,我通过反射调用它们,其中一些项目使用外部dll,当我编译我的项目时,每件事情都可以正常工作,当我将外部dll更改为新版本(新的汇编版本)时,问题就会发生,即使外部dll没有更改其代码,如果我重新编译我的项目,它也可以正常工作。问题是我如何构建我的项目并告诉他们忽略引用的汇编版本。 这是我在运行时遇到的异常
无法加载文件或程序集“TheExternalDL,Version=9.1.0.61,Culture=neutral,PublicKeyToken=111965d80b18ee08”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(HRESULT的例外情况)您的配置文件可能包含对以前的DLL版本号的引用,因此您可能需要更新该版本号。如果没有,您可以尝试向项目配置文件添加绑定重定向,其中包括新DLL版本号之前的版本。它可能如下所示:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="TheExternalDLL" publicKeyToken="?" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.9.9.9" newVersion="10.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>


您是否尝试使用IoC而不是纯反射?您也可以插入文件。您是否发现了这一点,目前我似乎每周都会遇到这个问题,使用不同的代码库。绑定重定向似乎工作得很好。