File delle risorse project.assets.json non trovato. Esegui un ripristino del pacchetto NuGet


261

Sto cercando di usare nopCommerce (che è scritto in .NET Core) ma quando voglio eseguire il progetto ho riscontrato 52 errori che mi dicono di eseguire un ripristino del pacchetto nuget

File delle risorse ~ \ obj \ project. assets.json " non trovato. Esegui un ripristino del pacchetto NuGet per generare questo file. Nop.Web.MVC.Testsote

quando uso il tasto destro del mouse sulla soluzione e selezionando Ripristina pacchetti Nuget ricevo questo messaggio:

Tutti i pacchetti sono già installati e non c'è nulla da ripristinare.

ma quei 52 errori sono ancora presenti e in Strumenti -> Gestione pacchetti NuGet -> Gestisci pacchetti NuGet per soluzione non è stato installato nulla sulla soluzione, inoltre ho recentemente aggiornato il mio VS2017 alla 15.5.4


Hai fornito il consenso a NuGet per il ripristino? Vai su strumenti, opzioni, cerca NuGet e seleziona l'opzione "Consenti NuGet ...".
imps

Se qualcuno è su un Mac, abbiamo riscontrato questo problema e risolto rimuovendo gli spazi nel percorso del repository (che è stato creato durante il git pull): My% 20Project diventa MyProject.
David Hague,

Risposte:


456

Per correggere questo errore da Strumenti> Gestione pacchetti NuGet> Console Gestione pacchetti, eseguire semplicemente:

dotnet restore

L'errore si verifica perché dotnet cli non crea inizialmente tutti i file richiesti. Il ripristino dotnet aggiunge i file richiesti.


21
Questa era anche la correzione per il server di compilazione. Aggiunto un passaggio dalla riga di comando per eseguire "dotnet restore" dopo il normale ripristino NuGet.
Mark

24
Puoi farlo anche da MSBuild: msbuild MySolution.sln / t: Restore
Der_Meister

3
La soluzione di @ Der_Meister per aggiungere l'opzione / t: Restore ha funzionato per me, tuttavia, ho dovuto costruire la soluzione due volte (due passaggi di build separati). Prima con l'opzione / t: Restore e poi di nuovo senza di essa.
Michael,

16
@Michael, prova msbuild MySolution.sln / t: Restore; Build
Der_Meister

8
Se hai più di un file di soluzione, devi farlodotnet restore solutionfilename.sln
ECH

97

Nel mio caso l'errore era il repository GIT. Aveva spazi nel nome, rendendo impossibile ripristinare il mio progetto

Se questo è il tuo problema, basta rinominare il repository GIT quando cloni

git clone http://Your%20Project%20With%20Spaces newprojectname

6
Ho pensato a me stesso che questo non poteva essere. Dopo aver provato per un'altra ora su altre soluzioni proposte, ho finalmente provato questo per disperazione e ho risolto il mio problema. Accidenti amico!
Stark

2
Questo risolto il problema che stavo avendo, grazie mille!
Sharbel,

3
Questa risposta dovrebbe essere all'inizio del post, non alla fine. Risolto il mio problema
CodeWarrior

2
Mi hai salvato la giornata! Grazie.
mpatel,

3
nel mio caso ho appena rinominato la mia cartella fisica rimuovendo% 20 e sostituendola con spazio normale e tutto funziona bene
hosam hemaily

42

Nel caso in cui "dotnet restore" non funzioni, possono essere utili i seguenti passaggi:

  1. Visual Studio >> Strumenti >> Opzioni >> Nuget Manager >> Sorgenti dei pacchetti
  2. Deselezionata qualsiasi fonte di pacchetti di terze parti.
  3. Ricostruisci la soluzione.

3
Di recente ho riscontrato questo problema per il server di avvio rapido n. 1 Identity: proteggere un'API utilizzando le credenziali del client e la soluzione di cui sopra ha funzionato per me.
Tharindu Jayasinghe,

Grazie! In realtà ho rimosso una fonte che non era più rilevante (da un'altra soluzione) e sulle fonti Pacchetti offline nuget.org e MSVS ho fatto clic sul pulsante Aggiorna . Dopo questo ha dotnet restorefunzionato.
CPHPython,

Grazie, è stato!
tdracz,

33

La chiusura e la riapertura di Visual Studio hanno risolto questo problema per me, una volta accertato che i pacchetti NuGet fossero stati ripristinati come da altre risposte pubblicate qui.


Non riesco a credere che abbia funzionato anche per me dopo aver eseguito il ripristino dotnet e solo dopo questo
Gaspa79,

Ho avuto alcuni problemi di connettività separati sulla mia LAN di lavoro che erano inibitori per NuGet. Il riavvio del mio PC ha risolto il problema!
Neo,

Questa non è davvero una risposta perché a volte usi gli strumenti CLI per gete buildnon apri VS. So perché funziona con VS, perché VS risolve automaticamente le dipendenze del progetto.
TS

@TS la domanda è taggata con "Visual Studio 2017", quindi direi che questa è una risposta. Sollevi un punto interessante, tuttavia, che il problema sta nella risoluzione delle dipendenze di VS. Se hai ulteriori informazioni su cosa non va, sono sicuro che renderebbe interessante la lettura
:)

+1. Mi hai beccato! Con VS, vabbè. La sua versione 15.5 era difettosa. Penso che il 15.5 / 15.6 avesse una serie di problemi per la risoluzione di riferimento. Ora, ecco la risposta stackoverflow.com/a/58548856/1704458
TS

20

A quelli con lo stesso problema nel mio ambiente Azure DevOps / VSTS che incontra un messaggio simile: C:\Program Files\dotnet\sdk\2.2.104\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file '...\obj\project.assets.json' not found. Run a NuGet package restore to generate this file

Aggiungi /t:Restoreai tuoi argomenti di MSBuild in Build Solution.


9

Per me quando l'ho fatto - si stava ancora verificando un errore di ripristino dotnet.

sono andato a

1 Strumento -> Gestore pacchetti NuGet -> Impostazioni gestore pacchetti -> fai clic su "Cancella su Nuget Catche (s)"

2 ripristino dotnet

problemi risolti.


Lo proverò la prossima volta che succede. Potrebbe essere un approccio migliore del mio (chiudere e riaprire VS) che in genere richiede secoli .
OutstandingBill

6

In Visual Studio 2017, procedere come segue:

1) selezionare Strumento => Opzioni => Gestione pacchetti NuGet => Sorgenti pacchetto quindi deselezionare l' opzione Pacchetti offline di Microsoft Visual Studio . inserisci qui la descrizione dell'immagine

2) ora apri Tool => NuGet Package Maneger => Package Manager Console. 3) eseguire il comando in PM> dotnet restore.

Spero che funzioni ...



5

Selezionare Strumenti > Gestione pacchetti NuGet > Console Gestione pacchetti

E poi Esegui:

dotnet restore <project or solution name>

3

un po 'tardi alla risposta, ma sembra che ciò aggiungerà valore. Osservando l'errore, sembra che si verifichi nella pipeline CI / CD.

Basta eseguire "dotnet build" sarà sufficiente.

build dotnet

dotnet build esegue il "ripristino" per impostazione predefinita.


1
Inoltre è possibile ottenere aggiungendo il passaggio ".NET core" alla pipeline (prima della compilazione) e selezionando il comando "dotnet restore" dal menu a discesa. Sto parlando specificamente della pipeline VSTS qui.
Lech Osiński,

3

Niente sopra ha funzionato per me. Ma la semplice eliminazione di tutte le cartelle 'bin' e 'obj' ha funzionato.


Questo problema è successo per me quando ho lavorato su un file Docker. l'eliminazione di tali cartelle ha consentito il corretto ripristino del dotnet nel contenitore.
Johannes,


2

Quando si utilizza VSTS, controllare il file global.json. Avevo inserito la versione SDK solo come "2.2" che ha causato un errore di analisi (ma non durante la creazione in locale). Aggiungendo la versione completa, "2.2.104" ha risolto il problema.


2

Ho perso diverse ore su questo errore in Azure DevOps quando ho impostato l'attività "Visual Studio Build" in una pipeline di build per creare un singolo progetto nella mia soluzione, piuttosto che l'intera soluzione.

Ciò significa che DevOps o non crea alcun (o forse alcuni, non sono sicuro) dei progetti a cui fa riferimento il progetto che hai scelto come target per la creazione, e quindi quei progetti non avranno il loro project.json File .asset generati, che quindi causano questo problema.

La soluzione per me era passare dall'uso dell'attività VS Build all'attività MSBuild. L'utilizzo dell'attività MSBuild per un singolo progetto crea correttamente tutti i progetti a cui fa riferimento il progetto che stai creando ed elimina questo errore.


1

Se il semplice ripristino dei pacchetti NuGet non funziona, assicurarsi che in Strumenti -> Opzioni -> Gestione pacchetti NuGet -> Generale in Ripristino pacchetti pacchetti sia selezionata l'opzione "Consenti a NuGet di scaricare pacchetti mancanti".

Quindi ripristinare nuovamente i pacchetti NuGet O semplicemente RICOSTRUIRE dopo aver eliminato le cartelle obj e bin.


1

Se il suggerimento di @ mostafa-bouzari non aiuta, controlla attentamente nelle finestre "Elenco errori" o "Output" gli errori per cui NuGet non è in grado di ripristinare, ad esempio a causa di un problema di rete se sei dietro al proxy.


Nel mio caso, Nuget Restore non è riuscito a connettersi al nostro repository NuGet privato, perché non ero connesso alla VPN aziendale. Verifica dei registri della console di Package Manager aiutati.
Alexander Puchkov,

1

Questo problema si verifica quando lo strumento di compilazione non è impostato restoresu progetti impostati su use PackageReferencevspackages.config e riguardano principalmente i nuovi progetti Net Core e Netstandard.

Quando apri Visual Studio e costruisci, questo lo risolve per te. Ma se usi l'automazione, gli strumenti della CLI, vedi questo problema.

Molte soluzioni sono offerte qui. Ma tutto ciò che devi ricordare, devi forzare restore. In alcuni casi si utilizza dotnet restoreprima di compilare. Se costruisci usando MsBuild aggiungi semplicemente /t:Restoreswitch al tuo comando.

In conclusione, è necessario capire perché non è possibile attivare il ripristino. Sorgente nuget errata o azione di ripristino mancante, nuget.exe obsoleta o tutto quanto sopra.


1

Esperienza molto strana che ho incontrato!

Avevo clonato con GIT bash e GIT cmd-Line in precedenza, ho riscontrato i problemi di cui sopra.

Successivamente, ho clonato con Tortoise-GIT e tutto ha funzionato come previsto.

Può essere questa una risposta folle, ma provarci una volta può farti risparmiare tempo!


1

Visto questo dopo aver aggiunto un progetto WinForms Core 3.1 (dai modelli di progetto) su VS-2019 vs 16.4.0 e aver tentato di eseguirlo immediatamente. Pulisci o ricostruisci l'intera soluzione non ha funzionato.

Ho appena ricaricato la mia soluzione ... ovvero File / Close Solution, quindi riaprirla e ricostruirla ha risolto il problema.


1

Se questo errore si verifica come parte di una build in Azure DevOps (TFS) e la build ha già un'attività di ripristino NuGet , questo errore potrebbe indicare che l'attività di ripristino NuGet non è stata in grado di ripristinare tutti i pacchetti, soprattutto se si utilizza un'origine pacchetto personalizzata ( come un server NuGet interno). L'aggiunta /t:Restore;Buildagli argomenti di MSBuild sembra essere un modo per risolvere l'errore, ma ciò richiede a MSBuild di eseguire un'operazione di ripristino NuGet aggiuntiva. Credo che questo abbia successo perché MSBuild utilizza l'origine del pacchetto personalizzata configurata in Visual Studio. Una soluzione preferibile è correggere l'attività di ripristino di NuGet.

Per configurare un'origine pacchetto personalizzata per l'attività di ripristino NuGet:

  1. Creare un NuGet.configfile che elenca tutte le origini del pacchetto (pacchetti offline di Microsoft Visual Studio, nuget.org e l'origine del pacchetto personalizzata) e aggiungerla al controllo del codice sorgente.
  2. Nell'attività di ripristino di Nuget in Feed da utilizzare: selezionare l'opzione Feed in my NuGet.config .
  3. Fornire il percorso a NuGet.config.
  4. Rimuovere l' /t:Restore;Buildopzione dall'attività MSBuild.

Ulteriori informazioni sono disponibili qui .


0

Ho ricevuto l'errore quando ho creato un lambda in dot net core in VS2017. Ciò che ha funzionato per me è stato scaricare il progetto e ricaricarlo.


0

esegui il tuo VS come amministratore dopo che nella console di gestione dei pacchetti esegui dotnet restore.


0

Un altro, se per caso stai usando Dropbox, controlla Conflictedi nomi dei file, fai una ricerca nel tuo repository ed elimina tutti quei file in conflitto.

Questo potrebbe accadere se i file sono stati spostati.


0

Causa di questo difetto: è necessario rimuovere il Nuget iniettato in Esplora file. Soluzione: una volta rimosso quel Nuget dal sistema, rimuoverlo dalla seguente posizione. selezionare Strumento => Opzioni => Gestione pacchetti NuGet => Sorgenti pacchetto quindi deselezionare l'opzione Pacchetti offline di Microsoft Visual Studio



0

Nel mio caso ho avuto un problema con le origini dei pacchetti disponibili. Avevo spostato la cartella del repository nuget locale in un nuovo percorso, ma non l'ho aggiornato nelle origini dei pacchetti disponibili di Nuget. Quando ho corretto il problema relativo al percorso, aggiornalo nelle Sorgenti pacchetto disponibili e dopo tutto (Nuget Restor, ecc.) Funzionava bene.


0

Per me si è rivelato essere un problema di credenziali di origine nuget. Di recente avevo cambiato la mia password per accedere a un server Nexus e Visual Studio stava ancora usando la vecchia password quando provavo ad accedere a un nuget su quel server tramite il gestore delle credenziali di Windows. Per risolverlo, ho dovuto eliminare la voce per quelle credenziali obsolete nel gestore delle credenziali e dopo, quando ho fatto un ripristino di nuget, mi ha richiesto una password che mi ha permesso di inserire la nuova password, che è stata salvata nuovamente nel gestore delle credenziali. È possibile accedere al gestore delle credenziali dalla riga cmd utilizzando CmdKey.exe.


0

Prova questo (ha funzionato per me):

  • Esegui VS come amministratore
  • Aggiornamento manuale di NuGet alla versione più recente
  • Elimina tutti i file bin e obj nel progetto.
  • Riavvia VS
  • Riconversione

0

Puoi scegliere: Strumenti> Gestione pacchetti NuGet> Console Gestione pacchetti

E poi Esegui:

ripristino dotnet

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.