Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 构建在.net 2.0上的exe是否可以引用构建在.net 4.0上的dll_C#_.net 4.0_.net 2.0 - Fatal编程技术网

C# 构建在.net 2.0上的exe是否可以引用构建在.net 4.0上的dll

C# 构建在.net 2.0上的exe是否可以引用构建在.net 4.0上的dll,c#,.net-4.0,.net-2.0,C#,.net 4.0,.net 2.0,我有一个必须在.NET2.0中生成的exe 此exe是否可以引用在.Net 4.0上构建的dll 当我尝试这样做时,会出现编译错误,提示“未找到引用dll”否。您可以引用使用早期版本生成的程序集,但不能反过来引用 此exe是否可以引用在.Net 4.0上构建的dll 不是。NETFramework是向后兼容的,而不是向上兼容的,这似乎很正常。为了使用根据.NET 4.0编译的程序集,您需要在CLR 4.0下运行应用程序 因此,总结一下: 当应用程序在CLR 4.0中运行时,可以混合使用.NET

我有一个必须在.NET2.0中生成的exe

此exe是否可以引用在.Net 4.0上构建的dll


当我尝试这样做时,会出现编译错误,提示“未找到引用dll”

否。您可以引用使用早期版本生成的程序集,但不能反过来引用

此exe是否可以引用在.Net 4.0上构建的dll

不是。NETFramework是向后兼容的,而不是向上兼容的,这似乎很正常。为了使用根据.NET 4.0编译的程序集,您需要在CLR 4.0下运行应用程序

因此,总结一下:

  • 当应用程序在CLR 4.0中运行时,可以混合使用.NET 2.0到.NET 4.0程序集
  • 当应用程序在CLR 2.0中运行时,可以混合使用.NET 2.0到.NET 3.5程序集(这是您的情况,因为可执行文件是根据.NET 2.0编译的)

我见过的最好的一个词的答案。为什么它需要构建为2.0,特别是?(因为这可能会影响答案)它的底层框架exe,由不同的团队开发。它们无法迁移到4.0。