2012-11-26 10 views
9

Ho installato di recente VS2012. Un progetto C++ (con .Net 4.0) che compila bene con VS2010 non riconosce HashSet<T> su VS2012. Ho anche cercato di essere esplicito con seguente dichiarazione:Dove HashSet <T> è entrato in VS2012?

System::Collections::Generic::HashSet<String^>^ _reasons; 

ma questo solo genera l'errore:

error C2039: 'HashSet' : is not a member of 'System::Collections::Generic 

La documentazione dice che è in System.Collections.Generic. Il compilatore C++ non la pensa così.

Qualche idea su dove è andata?

+2

* Un progetto C++ (con .Net 4.0) * Ouch. In ** normale ** C++, c'è 'unordered_set'. –

+1

È questo per C++ - CLI? –

+4

Avete associato il riferimento 'System.Core'? Il namespace System :: Collections :: Generic esiste in diversi assembly, si otterrà quel messaggio di errore se si fa riferimento a uno di essi, ma non a quello che include HashSet. –

risposta

14

HashSet <> è stato aggiunto a .NET, è diventato disponibile in .NET 3.5. Il namespace è più vecchio, mscorlib.dll contiene classi in System :: Collections :: Generic da .NET 2.0, classi come Stack <> e Queue <>. HashSet <> è stato aggiunto in un nuovo gruppo per .NET 3.5, System.Core.dll, non volevano armeggiare con gli assembly 2.0.

Di conseguenza, è necessario aggiungere un riferimento a System.Core per evitare il messaggio di errore.

Quando si verifica un errore come questo, fare sempre riferimento alla documentazione MSDN per visualizzare il riferimento all'assembly.

+0

Grazie Hans. Non mi è venuto in mente che avrei bisogno di aggiungere un nuovo riferimento dato che non ho modificato il framework .Net su cui stavo compilando. Adesso lo so. –

+0

Beh, l'hai fatto davvero. Hai cambiato il target da 2.0 a 3.5, l'unica versione con System.Core. L'IDE C++ non è così sofisticato come gli IDE C# o VB.NET. Piuttosto tipico degli strumenti C++, si presuppone che tu sappia cosa stai facendo. –

+1

Great Answer, ma per aiutare altre nuove persone C++ come me, questo è il mio riferimento per risolverlo: #using Mizmor

Problemi correlati