将.NET程序集引用解析为不同的名称?
我的项目引用Library1.dll和Library2.dll 。 Library2.dll对Library1.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