2012-08-30 31 views
10

Guardando a http://msdn.microsoft.com/en-us/library/dd287191(v=vs.110).aspx, sembra che e tutti i suoi amici nello spazio dei nomi System.Collections.Concurrent siano disponibili per l'utilizzo in una libreria di classi portatili.Libreria di classi portatile e .NET ConcurrentDictionary

Tuttavia, quando creo una libreria di classi portatile F # o C#, anche se aggiungo esplicitamente un riferimento a mscorlib.dll, la compilazione non riesce quando si utilizza ConcurrentDictionary.

Perché?

+0

Codice? Errore di compilazione? – vcsjones

+0

Per quanto posso vedere, questa classe non è disponibile in .NET 4 Portable Class Library, http://msdn.microsoft.com/en-us/library/dd287191(v=vs.100).aspx. Potrebbe essere che stai prendendo come destinazione .NET 4 invece di 4.5? –

+1

@AndersGustafsson: quando crei una ** F * Portable Class Library **, non hai altra scelta se non il targeting **. NET 4.5 **. – Okay

risposta

10

Il termine "Portatile" deve essere applicato liberamente in questo momento. Quando si crea il progetto della libreria di classi, viene richiesto di specificare gli obiettivi che si desidera supportare. Avrai solo ConcurrentDictionary quando selezioni ".NET Framework" e ".NET per le app di Windows Store".

Selezionare un altro e l'intero spazio dei nomi scompare.

Questo migliorerà nel tempo, presumo, ma Windows Phone 7, XBox e Silverlight sono in ritardo rispetto al momento.

+1

Avevi ragione, ma ricevo solo il prompt con ** Progetti C# **. Disattivando tutti tranne i due che mi hai detto, potrei usare questo spazio dei nomi :). Il modello di progetto ** F # Portable Class Library ** non mi suggerisce tuttavia queste opzioni :(. – Okay

+2

I repro.F # è ulteriormente vincolato (senza XBox o Telefono) e ha un sottoinsieme fisso. no-go there. –

+2

Sì, sfortunatamente, F # supporta solo un sottoinsieme fisso di piattaforme tramite portabile: Silverlight 5, .NET Framework 4.5 e app di Windows Store. –

Problemi correlati