2015-09-07 22 views
16

sto avendo problemi con il pacchetto NuGet ripristino nel corso di un TFS costruire 2015."Impossibile trovare la versione" durante TFS costruire 2015 durante il ripristino dei pacchetti Nuget

Dal momento che alcuni pacchetti richiedono NuGet 3.x client, ho configurato la nuova versione di scriptable per utilizzare una posizione NuGet personalizzata in cui ho inserito l'eseguibile di NuGet Command-Line 3.x beta.

Ogni volta che corro un accumulo, tutti i pacchetti non può essere ripristinata e NuGet getta la "Impossibile trovare la versione ..." errore:

Unable to find version '1.1.10' of package 'Microsoft.Bcl'. 
Unable to find version '4.0.10' of package 'System.Threading'. 
Unable to find version '1.1.37' of package 'System.Collections.Immutable'. 
Unable to find version '1.0.0' of package 'Owin'. 
Unable to find version '4.1.0' of package 'NLog'. 
Unable to find version '7.0.1' of package 'Newtonsoft.Json'. 
Unable to find version '2.0.1' of package 'MongoDB.Driver.Core'. 
Unable to find version '2.0.1' of package 'MongoDB.Driver'. 
Unable to find version '2.0.1' of package 'MongoDB.Bson'. 
Unable to find version '3.0.1' of package 'Microsoft.Owin.Security.OAuth'. 

... e ancora di più pacchetti. Credo che il problema sia chiaro.

Quando si genera la stessa soluzione nella macchina di compilazione utilizzando Visual Studio, tutti i pacchetti vengono ripristinati correttamente.

Come posso risolvere questo?

+0

Avete installato uno qualsiasi dei pacchetti Microsoft.CodeAnalysis Nuget?Ho fatto e ho iniziato a ottenere questi errori, quando ho rimosso tutti quelli che poi ha iniziato a lavorare di nuovo. – Schenz

+0

@Schenz Non ho questo pacchetto NuGet –

risposta

21

Nel mio caso, il problema era che l'utente a livello NuGet.config situato a C:\Users\[User name]\AppData\Roaming\NuGet\NuGet.config (dove [User name] è l'utente che è in esecuzione il servizio di Windows dell'agente build) stava indicando NuGet API v2 while my build is already using NuGet Command-Line 3.x.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> 
    <!-- CHANGING V2 TO V3 IN THE URI VALUE SOLVED THE ISSUE! --> 
    <add key="nuget.org" value="https://www.nuget.org/api/v3/" /> 
    </packageSources> 
</configuration> 
+0

Ho avuto un problema simile ma solo quando provavo ad installare un pacchetto tramite la Console di Gestione pacchetti; la finestra di dialogo Gestione pacchetti ha funzionato correttamente. Questa risposta mi ha indirizzato nella giusta direzione: era l'URL della fonte del pacchetto. Nel mio caso l'URL in Nuget.config aveva detto "https://www.nuget.org/api/v2/". Quando ho rimosso il "www", per cambiarlo in "https://nuget.org/api/v2/" ha funzionato. –

+5

https://www.nuget.org/api/v3/ - Questa posizione non esiste (il https://api.nuget.org/v3/index.json fa) ... e le due chiavi qui definite entrambi hanno lo stesso ID ("nuget.org") – CJBS

+0

Nel mio caso la terza versione era già indicata nella configurazione. Ho appena rimosso tutto il contenuto del file di configurazione e ha aiutato: David

3

Nel mio caso il Nuget.Config, era in:

C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\NuGet 

Così Cerca Nuget.Config nel vostro C:\.

L'utente dipende l'account che si è configurato il Agent

-1

Assicurarsi che la sorgente pacchetto viene verificata ...

Vai su Strumenti -> NuGet Package Manager -> Impostazioni Gestione pacchetti

Quindi fare clic su "Fonti del pacchetto" e assicurarsi che il pacchetto sia selezionato.

enter image description here

+1

ma stiamo parlando di una build TFS –

+0

Are tutti i pacchetti che vengono registrati in TFS? – Zenacity

+0

Yup !!!!!!!!!!!! –

1

Se per qualche motivo l'aggiornamento del NuGet.config nella cartella roaming non è un'opzione o indesiderato, è anche possibile aggiungere il file di configurazione alla radice soluzione.

Secondo la documentazione:

  • file NuGet.Config specifici del progetto si trovano in qualsiasi cartella dalla cartella della soluzione fino alla radice dell'unità. Questi consentono il controllo delle impostazioni come si applicano a un progetto oa un gruppo di progetti.
  • Un file NuGet.Config specifico della soluzione situato all'interno di una cartella .nuget nella soluzione. Le impostazioni in questo file si applicano solo ai pacchetti a livello di soluzione e sono supportate solo in NuGet 3.3 e versioni precedenti. Viene ignorato per NuGet 3.4 e versioni successive.

Config file locations and uses

+0

Bella aggiunta. Sembra che il problema abbia molti problemi/soluzioni a seconda del caso particolare! –

Problemi correlati