我在我的项目中使用了两个第三方facebook dll,它们具有不同的用途,但具有相同的名称“facebook.dll”。虽然添加引用我发现相同名称的冲突,所以我将一个dll的名称更改为“facebookpost”并添加了它的引用。我知道它只是通过更改该DLL的名称没有任何区别。但我需要在我的项目中使用这两个dll。我怎么能做到这一点?
我试过以下但没有运气
<?xml version="1.0"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ClassLibrary1" publicKeyToken="fbc28d9ca2fc8db5" />
<publisherPolicy apply="no" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
更新: 我有一些如何使用“extern别名”设法获取对faceook.dll的外部引用但是我收到一个错误“在/ reference选项中没有指定extern别名”
更新 通过遵循Orca在The extern alias 'xxx' was not specified in a /reference option中的方法,我解决了“未在/ reference选项中指定extern别名”问题。但现在结束了这个新错误 - “无法加载文件或程序集'[MyAliasName]'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。”
答案 0 :(得分:0)
DLL需要具有不同的AssemblyName。内部编译。如果它们具有相同的名称,则需要使用不同的密钥进行签名以避免冲突。
如果您有相同的命名空间,可能必须通过反射使用类型。我不知道是否有办法为C#/ .NET中的程序集导入创建特定的名称空间别名。