【问题标题】:Using .net 3.5 assemblies in asp.net 2.0 web application在 asp.net 2.0 Web 应用程序中使用 .net 3.5 程序集
【发布时间】:2011-02-22 07:40:20
【问题描述】:

我有一个针对 3.5 框架的 .net 程序集构建。这个程序集有一个类 Foo 有两个方法覆盖:

public class Foo {
    public T Set<T>(T value);
    public T Set<T>(Func<T> getValueFunc);
}

我在我的 asp.net 2.0 Web 应用程序中引用此程序集以使用 Set 方法的第一个覆盖(不带 Func)。

但是在构建时我收到一个错误,说我应该引用 System.Core 来使用 System.Func 委托...但我没有使用这种类型...

有没有办法解决这个问题?

PS: 没有选项可以转换我的 Web 应用程序以 3.5 框架为目标。

【问题讨论】:

  • 您是否有权访问所引用程序集的源代码?
  • 是的,我愿意。但它是一个在内部大量使用 3.5 的大型库,因此针对 2.0 重新编译也不是选择...

标签: .net asp.net .net-3.5 asp.net-2.0


【解决方案1】:

您必须将您的 Web 应用程序升级到 .net 3.5 才能使其正常工作,或者如果可能的话,从面向 .net 2.0 的目标重新编译程序集。

【讨论】:

    【解决方案2】:

    将您的网络应用程序转换为使用 .NET 3.5(或 4.0)。之后,一切都会好起来的。

    如果您必须坚持使用 .NET 2.0,这是我的想法

    • 尝试通过浏览 dll 并手动添加来引用 System.Core 程序集。 .NET Framework 3.5 使用与 2.0 相同的 CLR,因此如果它没有搞砸引用,它应该可以工作。 (例如,您无法添加的 .NET 3.5 中的内容)

    【讨论】:

    【解决方案3】:

    仅仅因为您没有在代码中调用特定的重载并不意味着编译器可以忽略它,如果它存在于您正在使用的类中,那么编译器需要知道它是什么。您需要参考 System.Core 或将您的项目转换为使用 .net 3.5

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 2010-11-24
      • 2010-10-10
      相关资源
      最近更新 更多