新的.NET 2.0的C ++ / CLI项目对mscorlib程序V4隐含的依赖?(New .NE

2019-07-19 22:13发布

我创建在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’正在使用(与该版本的文件的公钥令牌一起)。

然而,属性选择每个参考对话框时,绝对坚持认为正在使用的版文件。 谁相信? 该怎么办?

Answer 1:

看来,创建.NET CLR 2.0项目不支持。 下面是Microsoft Connect上的链接:

https://connect.microsoft.com/VisualStudio/feedback/details/780602/compiling-c-clr-dll-in-vs-2012-targeting-net-2-0-introduces-indirect-dependency-on-net- 4-0#标签



文章来源: New .NET 2.0 C++/CLI project has implicit dependency on mscorlib v4?