我创建在Visual Studio 2012新的C ++ / CLI项目,.NET 2.0选定为项目建立网页的框架。 我已经验证了“外部依赖”(mscorlib.dll中,System.Data.dll中,System.dll中,并system.xml.dll的)节目“路径”为c:\Windows\Microsoft.NET\Framework\v2.0.50727\*
。
当添加到在同一个解决方案一个C#.NET 2.0的项目这个项目的引用,在构建时,编译器并不能拒绝我的C ++库,出现以下错误:
警告2主要参考“d:\ GIT \ EasyBCD的\发布\ Win32Interop.dll”无法得到解决,因为它在.NET Framework组件“的mscorlib间接依赖,版本= 4.0.0.0,文化=中立,公钥= b77a5c561934e089" 具有更高版本‘4.0.0.0’比版本‘在当前的目标框架2.0.0.0’。 C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.Targets 1578
但是,就像我说的,在“Win32Interop”项目的引用清楚地表明,使用V2.0,以及项目文件本身包含<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
因为它应该。
为什么的Visual Studio 2012让我这样艰难的时刻?
编辑
神秘加深。 当试图删除所有,然后在C ++ / CLI项目重新添加.NET引用,这是什么所示:
正如你所看到的,它说,顶“定位:.NET框架2.0”和“版本”列表示,我选择的版本“2.0.0.0”。
然而,在点击OK,这是引用列表中的样子:
有针对性的框架仍然” .NETFramework,版本= V2.0" 但个别引用分别表示该版本‘4.0.0.0’正在使用(与该版本的文件的公钥令牌一起)。
然而,属性选择每个参考对话框时,绝对坚持认为正在使用的版文件。 谁相信? 该怎么办?