2014-11-29 17 views
6

Ho un progetto soluzione/team impostato in Visual Studio 2013 e per un certo periodo di tempo ho avuto un pacchetto NuGet Microsoft.Bcl Async operativo installato per NET Framework 4.0. Oggi quando si apre il progetto non è possibile trovare tutti i riferimenti predefiniti della libreria di sistema .NET, hanno solo un simbolo di avviso accanto a loro. Ho 49 avvertimenti quando costruisco il progetto dicendo "Il componente di riferimento" System.X "non è stato trovato. Oppure 'Impossibile trovare il componente di riferimento' Microsoft.X '. Tuttavia i riferimenti ad altri progetti nella soluzione rimangono intatti.Tutti i riferimenti di sistema mancanti Visual Studio 2013 NuGet Async

Se è di qualche importanza, ho utilizzato il sistema di controllo della versione integrato per conservare i backup del mio codice e accedervi dal mio altro PC con la stessa configurazione.

Guardando alle altre domande su StackOverflow con problemi simili, le persone sembrano puntare a NuGet come potenzialmente causa del problema, ma senza alcuna soluzione che sembra funzionare per me. Ho provato l'ovvia soluzione di rimuovere e riaggiungere il riferimento utilizzando sia il file browser che la scheda Framework, ma nessuno dei due ha funzionato finora.

Attualmente non riesco a compilare il progetto non appena ho ricevuto questo avviso, indubbiamente causato dai riferimenti mancanti in primo luogo.

errore 31 Il compito "EnsureBindingRedirects" non potrebbe essere caricato dal gruppo C: \ Users ... \ Visual Studio 2013 \ Projects \ AlgorithmToolsTFVC \ AlgorithmToolsSuite \ AlgorithmTools \ pacchetti \ Microsoft.Bcl.Build.1.0.14 \ tools \ Microsoft.Bcl.Build.Tasks.dll. Impossibile caricare file o assembly 'file: /// C: \ Utenti ... \ Visual Studio 2013 \ Projects \ AlgorithmToolsTFVC \ AlgorithmToolsSuite \ AlgorithmTools \ packages \ Microsoft.Bcl.Build.1.0.14 \ tools \ Microsoft.Bcl. Build.Tasks.dll 'o una delle sue dipendenze. Il sistema non trova il file specificato. Verificare che la dichiarazione sia corretta, che l'assembly e tutte le sue dipendenze siano disponibili e che l'attività contenga una classe pubblica che implementa Microsoft.Build.Framework.ITask. AlgorithmTools

risposta

1

Sono stato in grado di risolvere questo problema eseguendo innanzitutto un aggiornamento su tutti i pacchetti NuGet nella soluzione e quindi rimuovendo e reinserendo riferimenti alle librerie incluse o sovrascritte dal pacchetto.

+0

Avevo un problema simile dopo che VS si bloccava e dovevo ucciderlo Ho disinstallato i pacchetti NuGet e li ho reinstallati. Questo ha risolto il p roblem. –

23

Una possibile soluzione: Se state vedendo triangoli gialli sopra la maggior parte dei vostri riferimenti di sistema, modificare il .csproj del file (Back It Up nel caso), scorrere fino alla fine del file, ed eliminare queste righe ...

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> 
    <PropertyGroup> 
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 
    </PropertyGroup> 
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" /> 
</Target> 

Come molti altri, ho usato una cartella centralizzata .packages al di fuori del controllo del codice sorgente. Questo viene fatto con le seguenti righe nel tuo NuGet.Config del file:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <config> 
    <add key="repositoryPath" value="..\..\..\.packages" /> 
    </config> 
    <solution> 
    <add key="disableSourceControlIntegration" value="true" /> 
    </solution> 
</configuration> 

Uno dei passi nel raggiungimento di questo, è quello di controllare il vostro file di progetto non utilizza il vecchio file NuGet.targets più (l'unico file nella soluzione .nuget la cartella dovrebbe essere NuGet.Config).

Quando NuGet pensa che dovrebbe controllare il file NuGet.targets, e non è lì, fallirà assegni ai riferimenti di base troppo (come System.Core, WindowsBase e PresentationCore).


Aggiornamento:Vedi this argomento correlato/risposta su come fare completamente finita con .nuget cartelle nella vostra soluzione! Può essere impostato a livello di profilo utente nel tuo AppData.

+0

'Microsoft.Net.Compilers.1.0.0' e' Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0' mi hanno dato problemi ... Penso che sia lo stesso problema (Pacchetti fuori dalla soluzione). Disabilitate queste opzioni> Progetto ripristinato> pacchetti nuget ripristinati> progetto scaricato> ha riattivato queste opzioni> ha cambiato il livello di nidificazione in modo che corrisponda al resto dei pacchetti (da .. \ .. \ a .. \ .. \ .. \ .. \) e successo. – WernerCD

+0

Pura magia. Sembra essere il problema e la soluzione più comune quando si copiano solo i progetti di incollaggio da una soluzione a un'altra. –

0

Appena avuto lo stesso problema. Il motivo per me era che tutti i file all'interno del pacchetto Nuget diventavano improvvisamente dimensione 0 byte. Intendo DLL, file nupkg ecc.

Ho reinstallato il pacchetto e ha funzionato per me.

0

Ho avuto esattamente lo stesso problema con il mio progetto sul server di Team Foundation. Ho avuto l'errore dicendo che l'attività "AssicurarsiBindingRedirects" non poteva essere caricata dall'assieme C: \ Users ... \ Visual Studio ... "e molti avvertimenti che dicevano" Il componente di riferimento "Microsoft.X"

La soluzione era tutto ciò che dovevo fare era copiare la mia intera cartella di progetto in un'altra posizione e funzionava

0

Aveva un problema simile Dopo aver perso due ore e mezzo cercando di trovare una soluzione, l'ho risolto semplicemente aprendo il progetto in VS 2013, abilitando il ripristino e la ricostruzione del pacchetto NuGet Risolto immediatamente e ora funziona correttamente in VS 2015

Problemi correlati