L'apertura del progetto in Visual Studio non riesce a causa dell'errore nuget.targets non trovato


105

Quindi ho scaricato Twitterizer da http://www.twitterizer.net/downloads/

Provo ad aprirlo in Visual Studio e ottengo tutti questi errori nuget:

The imported project "C:\Twitterizer\.nuget\nuget.targets" was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file 
exists on disk.

Cosa sta succedendo. Come lo gestisco?


5
Solo una nota nel caso in cui qualcun altro si imbatta in questo. Nuget 2.7 ha introdotto un nuovo tipo di ripristino dei pacchetti. Se provi ad aggiungere un progetto che utilizzava il vecchio stile a una soluzione che utilizza il nuovo stile, otterrai lo stesso errore. Il modo per risolverlo è migrare il progetto al nuovo stile: docs.nuget.org/docs/workflows/…
Slapout

Risposte:


171
  1. Installa Nuget.
  2. Fare clic con il pulsante destro del mouse sulla soluzione e selezionare "Abilita ripristino pacchetto NuGet". In Visual Studio 2013 e versioni successive, seleziona invece "Ripristina pacchetti NuGet".
  3. Fare clic su Ok sull'avviso.
  4. Chiudi e riapri la soluzione.

Ora dovrebbe essere fantastico.


2
Grazie per questo, sarebbe bello se fornissero un messaggio di errore più utile in VS per questo.
rossisdead

2
Ricevo ancora questo errore anche se non si applica più a nuget 2.7
thepaulpage

Devi fare la soluzione alternativa menzionata @Slapout (commento sulla domanda originale)
JasonS

Ancora non funziona qui, dice che non ci sono più dipendenze da ripristinare. Ho già cancellato la cartella del pacchetto e ripristinato un paio di volte :(
rodrigorf

23

Un'alternativa è modificare il file .csproj con un editor di testo e rimuovere o commentare il segmento.


4
Per espandere questo caso, se sposti un progetto da una soluzione con un file .nuget \ nuget.targets esplicito a uno nuovo, vedrai questo problema (anche dopo aver ripristinato i pacchetti NuGet.) In questo caso, crea il nuget .targets o modifica manualmente il file di progetto.
ThisGuy

Ho anche applicato questa soluzione poiché il mio progetto non utilizzava i pacchetti NuGet e VS sembra aver generato automaticamente questa roba. Grazie al cielo per il controllo della versione che ha permesso di eliminare le righe aggiunte da .csproj.
Ivan G

Quale segmento è necessario rimuovere?
Zapnologica

18

Questo errore si verifica normalmente quando si tenta di aprire .csprojdirettamente, non tramite il file della soluzione, e .csprojimporta i target di Nuget in questo modo:

<Import Project="$(SolutionDir)\.nuget\NuGet.targets" />

Per risolverlo, puoi aprire .slne non .csprojdirettamente ... o rimuovere la importriga sopra.

Si noti che l'errore menzionato si verificherà solo quando si utilizza il solution wiseripristino del pacchetto, che non è nemmeno più consigliato.


2
Questo è il problema che ho avuto.
SparkyShorts

1
rimozione della "riga di importazione sopra". ha fatto il trucco per me. Grazie!!
Bart il

5

Ho appena riscontrato lo stesso problema, ma nel mio caso il problema era uno spazio nel nome della cartella:

Nuget mi diceva che non riusciva a trovare "C: \ git \ My Path" ma ero in grado di navigare in "C: \ git \ My% 20Path". La rimozione dello spazio nel nomecartella ha "risolto" il problema.


Questo era esattamente il mio problema - grazie mille!
D.Nielsen

2

So di essere in ritardo alla festa, ma ecco un ottimo tutorial su come risolvere questo problema. L'ho usato per sistemare il mio progetto.

Chiudere Visual Studio Se la soluzione che si sta tentando di migrare è aperta in Visual Studio, le modifiche potrebbero andare perse. Visual Studio potrebbe sovrascrivere / ignorare le modifiche in alcuni casi e l'estensione NuGet proverà anche a riattivare il ripristino del pacchetto quando rileva che alcuni progetti nella soluzione lo mancano.

Se si utilizza TFS, rimuovere i file NuGet.exe e NuGet.targets dalla cartella .nuget della soluzione. Assicurati che i file stessi vengano rimossi anche dall'area di lavoro della soluzione. Conserva il file NuGet.Config per continuare a ignorare l'aggiunta di pacchetti al controllo del codice sorgente. Modificare ogni file di progetto (ad esempio, .csproj, .vbproj) nella soluzione e rimuovere tutti i riferimenti al file NuGet.targets. Apri i file di progetto nell'editor di tua scelta e rimuovi le seguenti impostazioni:

vero ... ...

<PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download

loro. Per ulteriori informazioni, vedere http://go.microsoft.com/fwlink/?LinkID=322105 . Il file mancante è {0}. Se non si utilizza TFS, rimuovere la cartella .nuget dalla soluzione. Assicurati che la cartella stessa venga rimossa anche dall'area di lavoro della soluzione. Modificare ogni file di progetto (ad esempio, .csproj, .vbproj) nella soluzione e rimuovere tutti i riferimenti al file NuGet.targets. Apri i file di progetto nell'editor di tua scelta e rimuovi le seguenti impostazioni:

vero ... ...

<PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download

loro. Per ulteriori informazioni, vedere http://go.microsoft.com/fwlink/?LinkID=322105 . Il file mancante è {0}. Script di migrazione Molti utenti hanno richiesto uno strumento di migrazione per disabilitare il ripristino del pacchetto basato su MSBuild e convertirlo in Ripristino automatico del pacchetto. Il team NuGet ha deciso di non fornire uno strumento supportato per questo a causa dell'elevata probabilità di casi limite che non sarebbero stati gestiti. Tuttavia, Owen Johnson ha creato uno script PowerShell che può funzionare in molti casi. È disponibile su GitHub e può essere utilizzato a proprio rischio. In altre parole, assicurati di impegnarti nel controllo del codice sorgente prima di eseguirlo, nel caso in cui non funzioni nel tuo scenario.

Correzione Nuget.target


1

Quando ottengo l' nuget.targets not founderrore, utilizzo il gestore dei pacchetti su uninstall-packageuno dei pacchetti nel progetto e quindi lo reinstallo utilizzando install-package. Sembra che rigeneri il file nugets.target.


1

La soluzione più semplice quando si riceve questo errore per ripristinare il mancante NuGet.targetsin Visual Studio Solution Explorer è:

  1. Fare clic con il tasto destro sul file della soluzione
  2. Dal menu contestuale fare clic sull'opzione " Abilita ripristino pacchetto Nuget ..."

questo scaricherà i file mancanti nella .nugetcartella " " :)

Quanto sopra presuppone che tu abbia già installato Nuget, altrimenti segui la risposta accettata sopra!

AGGIORNAMENTO: per le versioni di Visual Studio successive al 2013, l'opzione si chiama " Ripristina pacchetti NuGet "


1
Non ho l'opzione per abilitare il ripristino del pacchetto nuget. L'ho appena fatto restore nuget packages.
Zapnologica

Aggiornata la risposta: questo è il nuovo nome dell'opzione di menu dopo VS2013
Emil
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.