【问题标题】:Using two different versions of the same DLL in an ASP site using two SDK's在使用两个 SDK 的 ASP 站点中使用同一 DLL 的两个不同版本
【发布时间】:2013-02-05 13:26:47
【问题描述】:

我正在尝试使用名为 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 中可用的类型和/或加载了错误版本的错误。

如何在 Ext.Net 2.1 中使用 DynamicDashboards 并解决冲突? 我没有 DynamicDashboards 的源代码,但我有 Ext.Net 和 Newtonsoft.Json 的源代码。

【问题讨论】:

标签: c# asp.net sdk


【解决方案1】:

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

在你的 C# 中,你必须给它加上一个 extern,例如:

extern alias Lib1;

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

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

如果您想对此进行更好的解释,请阅读这篇博文 - http://www.lloydkinsella.net/2012/07/13/extern-alias-underused-or-unknown/

【讨论】:

  • 如何在使用它作为依赖项的预编译 dll 上执行此操作?
  • AFAIK 你不能在预编译的库上做到这一点,没有办法告诉它使用一个命名空间而不是另一个命名空间,这是在编译时完成的:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多