简体   繁体   中英

Using .net 3.5 assemblies in asp.net 2.0 web application

I have an .net assembly build against 3.5 framework. This assembly has a class Foo with two method overrides:

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

I'm referencing this assembly in my asp.net 2.0 web application to use first override of the Set method (without Func).

But on build I get an error saying that I should reference System.Core to use System.Func delegate... but I'm not using this type...

Is there a workaround to solve this?

PS: There is no option to convert my web application targeting 3.5 framework.

Convert your web app to use .NET 3.5 (or 4.0). After that, everything will be fine.

If you have to stick to .NET 2.0, here are my ideas

  • Try to reference the System.Core assembly by browsing to the dll and manually adding it. The .NET Framework 3.5 uses the same CLR as 2.0, so it should work if it doesn't have screwed up references. (eg. stuff from .NET 3.5 that you can't add)

Just because you are not calling a particular overload in your code does not mean that the compiler can ignore it, if it exists in a class you are using then the compiler needs to know what it is. You either need reference System.Core or convert your project to use .net 3.5

您必须将您的Web应用程序升级到.net 3.5,以使其正常工作,或者尽可能地将目标定位为.net 2.0,从而重新编译程序集。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM