将.NET程序集引用解析为不同的名称?

我的项目引用Library1.dllLibrary2.dllLibrary2.dllLibrary1.dll具有依赖性,但它被编译为以不同的名称Library1.Net40.dll引用它。

有没有一种很好的方式告诉我的应用程序将Library1.Net40.dll的所有引用重定向到Library1.dll ? 也许类似于可以使用<bindingRedirect>重定向版本的方式?

我有一个处理AppDomain.AssemblyResolve事件的解决方案,但这有点破解,希望有更好的方法来做到这一点。

编辑:任何人的参考,这是我最终如何解决它使用AppDomain.AssemblyResolve事件重定向到一个不同的程序集。


你有没有试过玩过<codeBase>元素?

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="Library1.Net40"
                              publicKeyToken="..."
                              culture="neutral" />
            <codeBase version="2.0.0.0"
                      href="Library1.dll"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

(未经测试;不知道它是否有效。)

CF:我将这个更新放在这里,因为评论有点长

好主意,谢谢。 我得到了重定向工作,但它抱怨,因为名称不同,这里是日志:

LOG: Attempting download of new URL file:///C:/Project/bin/Library1.dll.
LOG: Assembly download was successful. Attempting setup of file: C:ProjectbinLibrary1.dll
LOG: Entering download cache setup phase.
LOG: Assembly Name is: Library1, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
WRN: Comparing the assembly name resulted in the mismatch: NAME
ERR: The assembly reference did not match the assembly definition found.
ERR: Setup failed with hr = 0x80131040.
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
链接地址: http://www.djcxy.com/p/48999.html

上一篇: Resolving .NET assembly reference to a different name?

下一篇: Is it possible to run IIS and Tomcat side by side?