c# - .NET编译的第三方DLL引用冲突

标签 c# .net vb.net dll gac

我正在使用 Umbraco (一个 .NET CMS),它有一个特定版本的 DLL 的引用(参见下面的 1 Umbraco 引用)。这很好,直到我尝试连接到引用同一 DLL 的不同版本的 .NET MailChimp API(请参阅下面的 2 PerceptiveMCAPI)。

我可以想出几个方案来解决这个问题

一个。获取 Umbraco 或 PerceptiveMCAPI 源并引用相同版本的 DLL,出于兼容性原因真的不想这样做

将 2 个 DLL 转储到 GAC 中,我想避免这种情况,因为我看到如果有人忘记会出现部署问题(我知道我们应该进行自动部署,但时间有限)

我记得还有第三个选项可以指定在配置中使用哪个版本的 DLL。这可能吗?它的代码是什么?

1 Umbraco 引用

// Assembly Reference CookComputing.XmlRpcV2

Version: 2.4.0.0 
Name: CookComputing.XmlRpcV2, Version=2.4.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d 

2 PerceptiveMCAPI

// Assembly PerceptiveMCAPI, Version 1.2.4.3


Location: C:\Work\AEGPL\AEGPL_Website\bin\PerceptiveMCAPI.dll 
Name: PerceptiveMCAPI, Version=1.2.4.3, Culture=neutral, PublicKeyToken=null 
Type: Library 

最佳答案

正是 GAC 存在的原因。我能想到的唯一其他解决方法是将这些 DLL 填充到子目录中,这样 CLR 就无法找到它们并实现 AppDomain.AssemblyResolve。您现在可以为每个新版本更新维护该代码。

关于c# - .NET编译的第三方DLL引用冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3805830/

相关文章:

c# - RX 调度程序 - 它是什么?

Exchange 2010 上的 C# 和 powershell - 无法识别术语 'Group-Object'

c# - 使用 C# : 比较和删除数据表行

c# - 将接口(interface)与 WCF 结合使用

php - 如何在 php 中编写通用函数来执行 sql 查询?

c# - 使用 .Net 编译器 Roslyn 为 C# 代码创建控制流图

c# - 停止后台 worker

.net - 为整个应用程序域定义文化

mysql - 如何在VB.NET10中执行包含:= operator in it的mysql查询

c# - 将事件处理程序附加到秒表