Mancano i pacchetti NuGet


297

Ho cercato questo problema ma nessuna delle soluzioni ha funzionato. Ho installato Visual Studio Professional 2015 e sto usando TFS. La mia versione di NuGet è 3.1.6. Questo problema si verifica solo nel mio progetto API Web / MVC C #.

Ricevo l'errore di seguito:

Questo progetto fa riferimento ai pacchetti NuGet mancanti su questo computer. Utilizzare NuGet Package Restore per scaricarli. Per ulteriori informazioni, vedere http://go.microsoft.com/fwlink/?LinkID=322105 . Il file mancante è .. \ pacchetti \ Microsoft.Net.Compilers.1.0.0 \ build \ Microsoft.Net.Compilers.props

  1. Non ho una cartella .nuget nelle mie soluzioni.
  2. Ho una cartella di pacchetti nella soluzione e quando la elimino, sembra che NuGet ricostruisca le dipendenze ma il progetto presenta ancora l'errore sopra riportato.
  3. Ho provato a rimuovere il progetto da TFS e non è stato risolto.
  4. Insieme con l'errore sopra riportato, tutti i riferimenti nel progetto hanno segnali di avvertimento gialli e dicono che mancano.
  5. Quando ho controllato NuGet Package Manager per il progetto, tutto ciò che è "mancante" ha un segno di spunta verde accanto ad esso, inclusi i compilatori Microsoft.Net.Compilers.
  6. Ho provato ad aggiungere un nuovo progetto API Web / MVC e ha riscontrato un problema simile in cui la maggior parte dei riferimenti come Owin erano "mancanti" con il segnale di avvertimento giallo.

voti per chiudere questa domanda a causa della quantità ridotta di risposte pubblicate di bassa qualità da parte di nuovi utenti.
ZF007,

Risposte:


265

Ho avuto lo stesso errore (mancando esattamente lo stesso pacchetto) oggi. Ho anche creato un progetto API Web MVC +.

È successo perché ho spostato i file dell'app (incluso il file .csproj) in un'altra posizione. Ho aggiornato manualmente il file .sln ma ora tutte le dipendenze dei pacchetti (Visual Studio 2015) sono archiviate nel file .csproj.

La modifica del file .csproj e la correzione del percorso relativo alla cartella della soluzione (che contiene la cartella dei pacchetti) ha risolto il problema.


2
Copiare la cartella Microsoft.Net.Compilers ... dalla vecchia cartella dei pacchetti nella posizione dei nuovi pacchetti dopo uno spostamento, se mancante, potrebbe essere un passaggio finale richiesto.
Justin Wignall,

2
Ho appena rimosso quel pacchetto ONE dal mio computer e ha funzionato.
SpoiledTechie.com

1
Ho anche ricevuto l'errore quando si sposta fisicamente un progetto in una posizione diversa nella soluzione di Visual Studio. Nessuna delle soluzioni in questa pagina ha funzionato, quindi ho fatto una copia del progetto (sul file system) e ho rimosso completamente tutti i riferimenti al progetto originale in VS. Ho quindi ricreato il progetto e copiato i frammenti (dalla copia che ho realizzato). Faticoso, ma ha funzionato.
Andrew Jens,

2
Ho anche avuto lo stesso problema dopo aver spostato il progetto da una posizione all'altra. Il percorso di correzione dei pacchetti nel file ".csproj" ha risolto il problema.
Nirman,

2
@ MiłoszWieczorek Ho provato a eseguire il comando nella console di Package Manager e non ho risolto il problema. Ha ricaricato tutti i pacchetti, ma i riferimenti non sono ancora stati trovati.
Francisco d'Anconia,

360

Ho risolto il mio problema rimuovendo questo codice dal .csprojfile:

<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>

5
La risposta accettata non funzionerebbe dal momento che mi riferisco al progetto in più soluzioni separate. Questa era l'unica soluzione. L'ho commentato e ha funzionato come un fascino.
Levi Fuller,

31
Potrei sbagliarmi, ma credo che questo sia "schiacciare la mosca con il martello". Se, per qualsiasi motivo, la posizione pubblicata perde qualsiasi altro pacchetto nuget richiesto, non si verificherà alcun errore, dandoti un falso positivo (ovvero la distribuzione ha esito positivo, ma il sistema non riesce). Non sono un fan, ma non lo voterò perché ci sono aspetti del nuget che ancora non conosco.
HeyZiko,

4
Questo ha funzionato anche per me. Strano che il messaggio di errore fosse hardcoded nel file proj stesso ...
Ryan Peters

7
Confermato che questo problema esiste ancora in VS 2017. Ho migrato un progetto da Visual Studio 2015 a 2017 e ho ricevuto questo messaggio di errore alla prima compilazione nel 2017. Ciò ha corretto il bug.
Tom McDonald,

2
Perché eliminare la funzionalità, rischiare di interrompere il progetto ecc. In questo modo? Come sottolineato da @HeyZiko, ciò può causare problemi in seguito. Potrei semplicemente fare ciò che dice l'errore "Abilita il ripristino del pacchetto". Vedi la mia risposta da qualche parte in questa pagina ...
Nicow,

45

ATTENZIONE: questo aggiorna i pacchetti per l'intera soluzione non solo per il progetto.

Se si dispone di un altro pacchetto nuget mancante che indica l'errore durante la creazione della soluzione, utilizzare il comando seguente utilizzando Nuget Command Console da Strumenti> Nuget Package Manager> Package Manager Console. Reinstalla tutti i pacchetti correnti.

Update-Package –reinstall

Aggiornare:

È possibile passare un nome di progetto specifico come parametro.

Update-Package –reinstall -ProjectName SampleApp

1
Questo ha funzionato per me. L'errore è emerso dopo di me dopo aver inviato le modifiche tramite git su un sistema e tirandole su un altro. Forse il mio .gitignore non è configurato correttamente per i pacchetti nuget.
Patrick Borkowicz, il

16
Attenzione ... questo aggiorna i pacchetti per l'intera soluzione non solo per il progetto.
Utente SO

1
Questo ha funzionato per me. NuGet continuava a lamentarsi dei pacchetti mancanti, ma Visual Studio non si risolveva automaticamente. Il completamento del processo ha richiesto un paio di minuti, ma questo comando ha risolto il mio problema.
Nick Alexander

8
È possibile aggiungere il parametro -ProjectName per renderlo solo per un progetto specifico, non per l'intera soluzione.
Miłosz Wieczorek,

2
VS2017 si è schiantato a metà strada e ha rotto tutto
lancia l'

19

Ho avuto questo esatto messaggio frustrante. Ciò che alla fine ha funzionato per me è stato eliminare tutti i file e le cartelle all'interno di / pacchetti e lasciare che VS recuperasse tutto la build successiva.


2
Ho fatto un clic destro sulla soluzione e Restore Nuget Packages.
Vitor Canova,

1
Non ho alcun pacchetto Restore Nuget quando faccio clic con il pulsante destro del mouse sulla soluzione .... Sto usando VS 2013 ..
Ziggler,

doveva anche assicurarsi che ripristinasse il pacchetto giusto. controlla il file .csproj usando note / Edit * .csproj per l'ubicazione della cartella dei pacchetti
AceMark

15

Tiberiu ha ragione. Ho dovuto modificare il mio file .csproj quando i file sono stati spostati e hanno causato questo problema

 <Import Project="..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

Ho cambiato all'inizio del file e in fondo

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />

quello che ha funzionato per me alla fine è stato modificare solo la riga alla fine del file, ma non in alto
ISAE

15

In questo modo ho risolto il mio errore: Per aprire il file .csproj per l'aggiornamento in Visual Studio 2015+ Solution Explorer:

Fare clic con il tasto destro del mouse sul nome del progetto -> Scarica progetto

Fare clic con il tasto destro del mouse sul nome del progetto -> Modifica .csproj

Rimuovi le seguenti righe:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
    <Error Condition="!Exists('packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
  </Target>

Fare clic con il tasto destro del mouse sul nome del progetto -> Ricarica progetto

Finalmente costruisci la tua soluzione.


Dopo aver corretto manualmente i percorsi in csproj, ho rimosso la sezione AssicurazioneNuGetPackageBuildImports e ha funzionato perfettamente. grazie
willyMon,

11

Ho risolto questo problema rimuovendo il seguente codice dal file .csproj

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
  <ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets'))" />


1
Ma perché dove sono sbagliati in primo luogo? Bug in Visual Studio?
Protector un

8

Una combinazione delle 2 risposte ha funzionato per me. Innanzitutto ho modificato il file .csproj per rimuovere il riferimento alla versione 1.0.0

< Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild" >

  ----Error---

< /Target>

e poi ha fatto

Update-Package -Reinstall

dal e ha funzionato.


6

Per me, il problema era che quando ho copiato la soluzione in una nuova cartella e l'ho aperta, mancava la cartella Nuget come mostrato di seguito. Ho copiato questa cartella e tutto ha funzionato. Nota: questa stessa cartella era nel nostro controllo del codice sorgente ma non in questo progetto di soluzioni, era su una directory.

inserisci qui la descrizione dell'immagine


6

Abilita il NuGet Package Restore. Fare clic con il tasto destro del mouse sulla soluzione> selezionare "Abilita ripristino pacchetto NuGet".

Fare clic con il tasto destro del mouse sulla soluzione> selezionare 'Abilita ripristino pacchetto NuGet'

Questo creerà la cartella .nuget con il file NuGet.Config e risolto il mio problema.


Grazie!! Anch'io ho affrontato una situazione simile e "Abilita ripristino pacchetto NuGet" ha funzionato.
Jain Prince,

18
Non si è svegliato per me, dice "Tutti i pacchetti sono già installati e non c'è nulla da ripristinare".
Dalibor,

5

Sto usando VS2012 e sto affrontando lo stesso errore. Ho rimosso il seguente tag Target dal file .csproj e ha iniziato la compilazione senza errori.

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  -- Error messages within Target Tag
</Target>

5

Per espandere alcune delle risposte qui, sì, è possibile rimuovere il seguente blocco dal file .csproj:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

e questo risolve il problema, tuttavia nel mio caso, ho notato che avevo riferimenti aggiuntivi a .NET.Compilers e .CodeDom.Providers con diverse versioni:

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.1
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\

Quando il mio package.config faceva riferimento solo a quanto segue:

<package id="Microsoft.Net.Compilers" version="2.0.1"
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3"

La rimozione degli elementi 1.0.0 dal file .csproj ha risolto il problema.


2

Per chiunque inciampi qui con il problema che ho riscontrato (alcuni ma non tutti i pacchetti sono stati ripristinati su un server di build), il pezzo finale del puzzle per me è stato l'aggiunta di un NuGet.config nella radice della mia soluzione, fratello di .SLN file come David Ebbo ha spiegato qui: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html .

Dal post del blog di Ebbo, i contenuti del file per me sono semplicemente

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
</configuration>

AGGIORNARE:

L'URL dell'API NuGet è stato modificato per v3 (aggiornato a settembre 2016). Da https://www.nuget.org/

<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />

1

Il messaggio di errore è completamente corretto. Ho provato tutti i trucchi e nessuno ha funzionato. Il progetto (semplice test MVC Web App) è passato dalla community di Windows 8.1 VS 2015 alla mia nuova casella di test su Windows 10. Sono stati applicati tutti gli ultimi aggiornamenti di VS 2015. Non ho nemmeno potuto installare alcuna versione più recente del pacchetto compilatori.

Loop:
<LOOP>This seems to be a Ground Hog Day phenomena.</LOOP>
GoTo Loop

Alla fine ho appena copiato Microsoft.Net.Compilers.1.0.0 dal vecchio progetto nel nuovo e ha funzionato. Potrei quindi iniziare ad aggiornare altri pacchetti alla versione più recente. A me sembra un bug del processo di aggiornamento del progetto nuget.

NOTA: il progetto originale è stato creato in VS 2015 e non ha metodologie nuget legacy.


1

Soluzione che funziona nel mio caso - Visual Studio 2015 Enterprice, progetto .NET 4.6.1

  1. Aggiorna all'aggiornamento 3
  2. Installa gli strumenti per sviluppatori Web

Installazione guidata di Visual Studio


1

Per me, i pacchetti erano lì nel percorso corretto, ma le cartelle di compilazione all'interno della cartella del pacchetto no. Ho semplicemente rimosso tutti i pacchetti che mancavano e ho ricostruito la soluzione e ha creato con successo le cartelle di build e i file .props. Quindi i messaggi di errore erano corretti nell'informarmi che c'era qualcosa che mi mancava.


1

Ho avuto questo problema come build fallita in Azure, quando distribuito da Git.

Si scopre che il mio .gitignore stava escludendo la buildcartella da ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props.

Una volta che la buildcartella è stata (forzata) impegnata in Git, il problema è stato risolto.


1

Ho risolto lo stesso problema con i seguenti passaggi

  1. Pacchetto rimosso <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" />dal file package.config.
  2. Modificare il file di progetto .csproj e rimuovere le seguenti impostazioni. <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">     <PropertyGroup>       <ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />   </Target>

    1. Vai alla console di gestione dei pacchetti ed esegui il comando Update-Package –reinstall

I punti 2 e 3 sono stati assegnati da altri utenti e apprezzo tali utenti. Punto n. 1, la rimozione del Microsoft.CodeDom.Providers.DotNetCompilerPlatformfile package.config è più importante. Inoltre, dopo aver eseguito il comando di cui al punto 3, il problema è stato risolto. Tutti i pacchetti indesiderati sono stati rimossi e il riferimento al pacchetto richiesto è stato aggiornato.

Spero che questo aiuti qualcuno.


0

Non sono riuscito a trovare alcuna soluzione a questo, quindi ho aggiunto una copia di nuget.exe e uno script PowerShell alla directory principale della soluzione chiamata prebuild.ps1 con il seguente contenuto.

$nugetexe = 'nuget.exe'
$args = 'restore SOLUTION_NAME_HERE.sln'
Start-Process $nugetexe -ArgumentList $args

Ho chiamato questo script PowerShell nella mia build nel percorso di script Pre-Build inserisci qui la descrizione dell'immagine


0

Il mio ha funzionato quando ho copiato la cartella dei pacchetti insieme al file della soluzione e alla cartella del progetto. Non ho appena copiato la cartella dei pacchetti dalla posizione precedente.


0

Puoi anche utilizzare il messaggio di errore suggerito come suggerimento. Ecco come, trova Gestisci pacchetti per soluzione e fai clic sul pacchetto di risoluzione mancante di nuget.

Questo è tutto


0

Commenta l'opzione del compilatore in WebConfig:

<!--<system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>
</system.codedom>-->

Aggiorna l'ultima versione dei pacchetti nel file di configurazione del pacchetto

  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.4" targetFramework="net452" />

Ricostruisci se tutto va bene, non è necessario procedere, altrimenti Fai clic con il pulsante destro del mouse sul progetto, fai clic su "scarica progetto" Fai nuovamente clic con il pulsante destro del mouse sul progetto e modifica il file .csproj

Convalida il percorso di Codedom, non aveva net45 nei percorsi precedenti, aggiungilo manualmente, salva, carica, ricostruisci. Dovrebbe funzionare.

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

0

Come molti hanno suggerito di rimuovere il <Target>tag potrebbe renderlo compilabile. Tuttavia, fai attenzione al fatto che ha un effetto collaterale quando lo fai per i progetti di test.

MSTest.TestAdapterDurante la compilazione ho riscontrato un errore relativo al pacchetto nuget. Risolto il problema rimuovendolo<Target> tag. Anche se ha reso la build di successo, i metodi di test non sono stati individuabili. Test explorer non elencherà i metodi di test in quel progetto e anche Run Test o Debug Test non funzioneranno.

L'ho riscontrato durante l'utilizzo Visual Studio 2017e .Net framework 4.7, può benissimo accadere in altre versioni


1
Ho esattamente quel problema usando VS2017, .Net4.7 e un progetto di unit testing. Tale progetto viene aggiunto a più soluzioni. Il ripristino automatico funziona ma nel posto sbagliato. Sostituisci con $(SolutionDir)lavoro ma l'aggiornamento non riesce. L'ho chiesto qui . Hai trovato una soluzione?
Sebastian Schumann,

0

Il problema per me era che NuGet non riusciva a ottenere / aggiornare automaticamente i pacchetti perché il percorso completo del file sarebbe troppo grande. Risolto spostando la mia soluzione in una cartella nei miei documenti anziché in una cartella profondamente nidificata .

Quindi è possibile fare clic con il pulsante destro del mouse sulla soluzione e selezionare "Ripristina pacchetti NuGet" (che probabilmente non è necessario se lo si crea e lo si fa per sé), quindi selezionare "Gestisci pacchetti NuGet per soluzione" per ottenere tutti i pacchetti aggiornato all'ultima versione.

Questo era per una soluzione di un'applicazione ASP MVC di esempio scaricata dal sito Web di Microsoft.


0

Per gli ingegneri DevOps / build, probabilmente è possibile risolvere questo problema con nuget restorelo SLN interessato o il progetto se non si dispone di uno SLN. Devo farlo per i nostri build CI / CD per tutti i nostri progetti UWP.

  1. Assicurarsi che nuget sia installato sullo slave di compilazione in Visual Studio o autonomo. Se è quest'ultimo, assicurati che sia nel PERCORSO e salta il passaggio 2.
  2. Aprire la console CMD VS Dev o caricarla tramite una già aperta, cosa che è possibile fare con le istruzioni seguenti:
    VS2015 call "%VS140COMNTOOLS%VsDevCmd.bat"
    o
    VS2017call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
  3. call nuget restore MyStuff.SLNo call nuget restore MyStuff.csprojse non c'è SLN.

0

Non sono sicuro che questo possa aiutare qualcuno, ma ho riscontrato questo problema quando ho eliminato il codice sorgente dal mio computer locale senza aver mai salvato il file della soluzione in TFS. (Durante lo sviluppo iniziale, ho fatto clic con il pulsante destro del mouse e ho verificato il progetto in Esplora soluzioni, ma ho dimenticato di controllare sempre la soluzione stessa.) Quando ho dovuto lavorare di nuovo su questo, tutto ciò che avevo in TFS era il file .csproj, nessun file .sln. Quindi in VS ho fatto un file -> Controllo del codice sorgente -> Avanzate - Apri dal server e ho aperto il file .csproj. Da lì ho fatto un Salva tutto e mi ha chiesto dove volevo salvare il file .sln. Stavo salvando questo file .sln nella directory del progetto con le altre cartelle (App_Data, App_Start, ecc.), Non nella directory di livello superiore. Alla fine ho capito che dovevo salvare il file .sln in una directory dalla cartella del progetto in modo che " s allo stesso livello della cartella del progetto. Tutti i miei percorsi si sono risolti e sono stato in grado di ricostruirlo.


0

Per me il mio file gitignore stava ignorando la mia cartella dei pacchetti. La seguente riga di gitignore stava causando il problema -

**/packages/*

Rimosso e ripristinato la cartella dei miei pacchetti. Spero che questo aiuti qualcun altro.


0

Ho risolto questo errore, in realtà avevo una versione diversa di MSTest.TestAdapter (1.3.2) nella mia cartella dei pacchetti e nei riferimenti ai file .csproj puntavano a MSTest.TestAdapter (1.1.0). Ho sostituito tutto MSTest.TestAdapter (1.1.0) a MSTest.TestAdapter (1.3.2) e questo ha risolto il mio problema.


0

Mi rendo conto che questa domanda è vecchia, tuttavia oggi mi sono imbattuto in questa stessa situazione e volevo buttare i miei 2 centesimi per chiunque abbia trovato questo problema. Un progetto ASP MVC che avevo spostato manualmente in una sottocartella nella mia soluzione e quindi rimosso e ritoccato alla soluzione, utilizzando Visual Studio 2017, stava dando l'errore menzionato. Spostare le cartelle "lib" e "pacchetti" nella radice della stessa sottocartella del progetto MVC ha risolto il mio problema.


0

Stavo avendo lo stesso problema, risulta che uno dei progetti a cui stavo facendo riferimento era al di fuori della directory della soluzione (e quindi non condivideva la stessa cartella '/ pacchetti'). La soluzione che ha funzionato per me è stata quella di aprire la soluzione del progetto di riferimento e costruirla lì. Una volta realizzato il progetto, gli errori sono scomparsi.

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.