Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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
为什么添加对项目目标.NET Framework 4.0的引用失败?_.net_Visual Studio_Visual Studio 2010_.net 4.0 - Fatal编程技术网

为什么添加对项目目标.NET Framework 4.0的引用失败?

为什么添加对项目目标.NET Framework 4.0的引用失败?,.net,visual-studio,visual-studio-2010,.net-4.0,.net,Visual Studio,Visual Studio 2010,.net 4.0,我们有两个项目都是类库。项目1是一个VS2008项目,目标是.NETFramework 3.5。Project 2是一个VS 2010(候选版本)项目,目标是.NET Framework 4.0。当我尝试在项目1中添加对项目2的引用时,它失败了,并显示一条信息不足的错误消息。我知道,如果我将项目2的目标框架更改为3.5,那么添加引用将起作用。我的问题是,如果我不更改目标框架,而是将Project 1转换为VS 2010,那么引用会起作用吗?换句话说,针对不同框架版本的类库之间是否存在一些固有的不

我们有两个项目都是类库。项目1是一个VS2008项目,目标是.NETFramework 3.5。Project 2是一个VS 2010(候选版本)项目,目标是.NET Framework 4.0。当我尝试在项目1中添加对项目2的引用时,它失败了,并显示一条信息不足的错误消息。我知道,如果我将项目2的目标框架更改为3.5,那么添加引用将起作用。我的问题是,如果我不更改目标框架,而是将Project 1转换为VS 2010,那么引用会起作用吗?换句话说,针对不同框架版本的类库之间是否存在一些固有的不兼容,或者对我来说是失败的,因为VS2008不了解4.0框架?

是的,这是一个问题。就像不能从.NET 1.0或1.1项目添加对.NET 2.0程序集的引用一样。NET 4.0是框架(CLR)的新运行时版本。NET 3.5和3.0版本都使用框架(CLR)的2.0运行时版本

始终可以将引用从使用较新运行时生成的程序集添加到使用较旧运行时生成的程序集,但不能以相反的方式添加

来自.NET 2.0(3.0和3.5):
*可以引用.NET 2.0(3.0和3.5)程序集
*无法引用.NET 4.0程序集

从.NET 4.0开始:
*可以引用.NET 4.0程序集

*可以引用.NET 2.0(3.0和3.5)程序集

Framework版本2、3.0和3.5在CLR版本2上运行,而Framework版本4在CLR版本4上运行:版本2 CLR不会加载声明需要CLR 4的程序集,因此Visual Studio正试图(听起来很糟糕)告诉您这一点。因此,为了回答您的问题,是的,如果您将项目1更新为VS 2010,并将目标框架更改为版本4,(默认情况下,它是针对C++项目而不是C.Y/VB.NET),则它可以引用项目2。

< P>如果您希望使用针对.NETFramework 3.5的程序集的.NET框架4的程序集,可以导出组件。(.net framework 4)并将其导入assembly.net framework 3.5


对不起,我的英语很差。

你的英语完全可以理解。没什么可道歉的。祝贺你!:)