使用两个SDK在ASP站点中使用相同DLL的两个不同版本

时间:2013-02-05 13:26:47

标签: c# asp.net sdk

我正在尝试使用名为DynamicDashboards的应用程序来创建统计信息中心。这是使用另外两个依赖项Ext.Net 1.5.0.0和Newtonsoft.Json 4.0.8.0预编译的。同时我尝试使用较新版本的Ext.Net 2.1来构建一些需要Newtonsoft.Json 4.5.0.0的模块。

因为在这两种情况下,DLL都具有相同的名称和大多数相同的类型,我得到的错误是DLL中可用的类型和/或加载了错误的版本。

如何将DynamicDashboards与Ext.Net 2.1一起使用并解决冲突? 我没有DynamicDashboards的源代码,我确实有Ext.Net和Newtonsoft.Json的源代码。

1 个答案:

答案 0 :(得分:5)

引用两个程序集。在解决方案资源管理器中选择每个,然后查看属性。应该有Aliases属性。通常将其设置为global,但您可以更改和/或添加此项。例如,调用第一个引用Lib1和第二个Lib2

在你的C#中,你必须把它放在外面,例如:

extern alias Lib1;

然后您可以引用每个单独的程序集,如下所示:

Lib1::Some.Namespace.Type
Lib2::Some.Namespace.Type

如果您想更好地解释这一点,请阅读此博客文章 - http://www.lloydkinsella.net/2012/07/13/extern-alias-underused-or-unknown/