C++ cli HashSet在哪里<;T>;进入VS2012?

C++ cli HashSet在哪里<;T>;进入VS2012?,c++-cli,visual-studio-2012,hashset,C++ Cli,Visual Studio 2012,Hashset,我最近安装了VS2012。在VS2010下编译精细的C++项目(不含.NET 4)在VS2012上不识别代码> HasSet < /代码>。我甚至试着用下面的声明来表达: System::Collections::Generic::HashSet< String^ >^ _reasons; 文档中说它位于System.Collections.Generic中。C++编译器不这么认为。 关于它的发展方向有什么想法吗?HashSet是.NET的一个后期添加,它在.NET3.5中开始使用

我最近安装了VS2012。在VS2010下编译精细的C++项目(不含.NET 4)在VS2012上不识别代码> HasSet < /代码>。我甚至试着用下面的声明来表达:

System::Collections::Generic::HashSet< String^ >^ _reasons;
文档中说它位于System.Collections.Generic中。C++编译器不这么认为。 关于它的发展方向有什么想法吗?

HashSet是.NET的一个后期添加,它在.NET3.5中开始使用。命名空间较旧,mscorlib.dll包含System::Collections::Generic(自.NET 2.0以来)中的类,如Stack和Queue。HashSet被添加到.NET3.5的一个新程序集System.Core.dll中,他们不想修补2.0程序集

因此,必须添加对System.Core的引用以避免错误消息


总是引用MSDN文档,当您得到这样的错误时,它显示您需要程序集引用。

一个C++项目(带有.NET 4)ouCH。在普通C++中,有<代码> unordeDeSET> /COD>。是否有汇编<代码>系统?System::Collections::Generic命名空间存在于多个程序集中,如果引用其中一个程序集,而不是包含HashSet.的程序集,则会收到该错误消息。显式添加System.Core作为引用。这就解决了问题。谢谢你,大卫!谢谢你,汉斯。我没有想到我需要添加一个新的引用,因为我没有更改编译时使用的.Net framework。现在我知道了,你确实知道了。您将目标从2.0更改为3.5,这是唯一具有System.Core的版本。C++ IDE并不像C语言或VB.NET那样复杂。非常典型的C++工具,它假定你知道你在做什么。很棒的答案,但是为了帮助其他像我一样的C++用户,这就是我的参考文献所要解决的问题:
error C2039: 'HashSet' : is not a member of 'System::Collections::Generic