Provare a "Aggiungi riferimento" il esplicitamente da C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5
. In alternativa è possibile utilizzare la directory C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades
.
AGGIORNAMENTO: Ho esaminato il problema più dopo la lettura di the answer sulla rimozione del riferimento System.Runtime
e posso aggiungere quanto segue: Il riferimento alla System.Runtime
verrà aggiunto a causa dell'errore nella versione currect del pacchetto NuGet Microsoft.Tpl.Dataflow.4.5.1-rc
. Se si aggiunge il riferimento allo stesso System.Threading.Tasks.Dataflow.dll
direttamente in Visual Studio, verrà aggiunto il riferimento System.Runtime
e nessun problema esiste.
Utilizzando NuGet Package Explorer è possibile scaricare l'originale Microsoft.Tpl.Dataflow.4.5.1-rc.nupkg
dalla "fonte di pacchetto ufficiale NuGet". Alla fine del Matadata pacchetto si vedrà
Si può modificare i metadati (stampa Ctrl-K) e rimuovere il riferimento:
Dopo di che si può salva il file modificato Microsoft.Tpl.Dataflow.4.5.1-rc.nupkg
in qualche directory. Dopo aver aggiunto una nuova posizione (la directory locale) nell'elenco dei sorgenti NuGet (vedi here o here) si sarà in grado di aggiungere un nuovo pacchetto dalla sorgente locale (non dimenticare di scegliere di visualizzare tutti i pacchetti compresa la pre-release vedere la foto qui sotto):
il modificata Microsoft.Tpl.Dataflow.4.5.1-rc.nupkg
non aggiungerà System.Runtime
e il progetto verrà compilato senza errori.
Così il bug non esiste in Visual Studio 2012 RC e anche se non in Microsoft.Tpl.Dataflow.dll
. Il bug si trova solo nei metadati della versione pre-release del pacchetto NuGet Microsoft.Tpl.Dataflow
disponibile attualmente su "Origine pacchetto ufficiale NuGet".
È possibile inviare la segnalazione di bug al autors in modo che il pacchetto venga corretto.
AGGIORNATO 2: Anche se la mia risposta è già stata contrassegnata come risolta e la taglia che ha assegnato il problema non mi è ancora passata per la testa. In realtà io vedo due problemi aperti:
- Perché l'esistenza di assemblaggio inutilizzata
System.Runtime
può produrre l'errore durante la builging del progetto.
- Vedo alcuni problemi generali nel modo in cui funziona la disinstallazione o l'aggiornamento dei pacchetti NuGet (vedere i dettagli più avanti).
Accettiamo solo il fatto che il primo problema esiste indipendentemente dalla ragione. Il secondo problema mi rende irrequieto. Vedo il vero problema qui. Ognuno può fare il seguente esperimento per capire meglio di me:
- Creare una nuova applicazione console vuota in Visual Studio 2012 RC.
- Verificare che il progetto non abbia riferimento a
System.Runtime
.
- Aprire "Console Gestione pacchetti" da "Strumenti"/"Gestore pacchetti libreria".
- eseguire il comando "Installare-Pacchetto Microsoft.Tpl.Dataflow -Pre" nella "Console Package Manager".
- Verificare che sia
System.Runtime
sia System.Threading.Tasks.Dataflow
siano inclusi nell'elenco dei riferimenti del progetto.
- eseguire il comando "Uninstall -Package Microsoft.Tpl.Dataflow" nel "Gestore Console Package".
- Verificare che
System.Threading.Tasks.Dataflow
vengano rimossi dall'elenco di Riferimenti del progetto, ma System.Runtime
è ancora nell'elenco di riferimenti.
ho fatto un altro esperimento e ho cambiato la versione di modificata Microsoft.Tpl.Dataflow.4.5.1-rc.nupkg
, dove ho rimosso il riferimento a System.Runtime
, da 4.5.1-rc
a 4.5.1-rc1
e salvato in locale (verrà salvato con Microsoft.Tpl.Dataflow.4.5.1-rc1.nupkg
). Dopo che ho potuto vedere la versione "nuova" nella lista degli aggiornamenti al mio progetto:
Se installare l'aggiornamento il riferimento a System.Runtime
sarà, inoltre, non rimosso.
Quindi l'implementazione corrente di "Aggiornamento" e "Disinstalla" di NuGet presenta il bug o un problema di progettazione generale. Se aggiungiamo un pacchetto al nostro progetto e facciamo alcuni aggiornamenti del progetto, otterremo i riferimenti di tutti gli assembly dipendenti di tutte le vecchie versioni. I vecchi riferimenti, aggiunti da NuGet dalle vecchie versioni del pacchetto, non verranno rimossi durante la disinstallazione o l'aggiornamento.Prima di tutto non è bello avere spazzatura nei riferimenti del progetto, ma a causa dell'esistenza del primo problema (errore durante la compilazione se esiste il riferimento a System.Runtime
senza riferimento) il problema sarà ancora più serio.
Quindi, se non verrà modificato nulla in NuGet, l'aggiornamento alla versione successiva di Microsoft.Tpl.Dataflow
non risolverà il problema per gli utenti che hanno installato Microsoft.Tpl.Dataflow
nella versione 4.5.1 (o probabilmente nella versione precedente). Tutti gli utenti dovranno rimuovere manualmente il riferimento a System.Runtime
. Penso che sia un vero problema NuGet che deve essere risolto dagli sviluppatori NuGet. In seguito pubblicherò la descrizione del problema in http://nuget.org/.
Il bug report che ho inviato a NuGet può essere trovato here (mi dispiace per la formattazione non perfetta del testo).
È un nuovo progetto o uno esistente? –
Il problema si verifica quando si crea un nuovo progetto. L'apertura di un progetto creato con VS11 Beta che già utilizza TPL Dataflow funziona correttamente. – svick
[Ho postato questo bug su Connect.] (Https://connect.microsoft.com/VisualStudio/feedback/details/746558/problems-with-references-to-tpl-dataflow-and-tpl) – svick