2012-08-07 16 views
5

Così, ho attivato il ripristino pacchetto su mie soluzioni - Installare-Pacchetto NuGetEnablePackageRestoreTrucchi TFS NuGet che non conosco già?

Ho installato e aggiornato NuGet sul TFS Creazione di Server

ho creato la variabile d'ambiente sul TFS costruire Server - http://www.centrolutions.com/blog/post/2012/07/05/NuGet-and-TFS-2010-Automated-Build.aspx

Ho eliminato tutti i miei file packages.config e ricominciato da capo su ogni progetto.

ho aggiunto il percorso della cartella .nuget per il lavoro composto, insieme a una definita Costruire Agente cartella

Ho quasi finito il mio cappio e ha intenzione di appendere me all'alba ... c'è qualcosa che mi mancano?

dimenticato di mettere TFS Costruire errori

C: \ Builds \ 10 \ ....... NuGet nuget.targets (76): Il pacchetto di ripristino è disabilitato per default. Per dare il consenso, apri la finestra di dialogo Opzioni di Visual Studio, fai clic sul nodo Gestione pacchetti e seleziona "Permetti a NuGet di scaricare i pacchetti mancanti durante la compilazione". Puoi anche dare il consenso impostando la variabile di ambiente 'EnableNuGetPackageRestore' su 'true'.

e

C: \ Sviluppa \ 10 ....... NuGet \ nuget.targets (76): Il comando "" C: \ Builds \ 10 ....... NuGet \ nuget.exe "installa" C: \ Builds \ 10 ...... \ packages.config "-source" "-o" C: \ Builds \ 10 ...... \ packages "" terminato con codice - 1.

Percorso completo rimosso per sicurezza.

DISCOVERY:

mio amministratore di TFS istituito la variabile d'ambiente come una variabile utente! Ho solo immaginato che le avrei chiesto di mostrarmi esattamente come l'aveva configurato e non appena l'ha fatto, ho capito che era sbagliato.

Non riesco più a visualizzare l'errore di ripristino del pacchetto ... wooo! Ricevo comunque gli errori di "Impossibile trovare la versione", il che mi fa pensare che la casella TFS non sia a conoscenza delle corrette origini del pacchetto. Ho verificato che l'origine del pacchetto sia accessibile dalla casella di compilazione TFS, inoltre ho configurato NuGet su quella casella per fare riferimento alle condivisioni di pacchetti.

È possibile farlo senza un server dei pacchetti? Ho usato le condivisioni di file per tutte le mie build locali, ma mi chiedo se le regole cambino quando colpiscono la casella TFS. Devo definire le mie origini del pacchetto nel file Nuget.config?

+1

Qual è il problema? Qualsiasi messaggio di errore? –

risposta

2

Il problema si è verificato quando l'amministratore TFS ha utilizzato una "variabile utente" per la variabile di ambiente EnableNuGetPackageRestore. Non avrei mai immaginato questa destra fuori del blocco :(.

sono andato a guardare la sua configurazione di nuovo, e ho notato che era sbagliato ... avuto la sua correggerlo, e ora funziona benissimo.

Grazie per tutti i consigli!

+2

e il controller di build TFS/servic e/agent deve essere riavviato, a meno che il server stesso non sia stato riavviato. – talisker

2

A partire da NuGet 2.0, è necessario consentire a NuGet di scaricare pacchetti durante la compilazione (problemi di privacy). Maggiori informazioni qui: http://blog.nuget.org/20120518/package-restore-and-consent.html

L'opzione per fornire il consenso nell'interfaccia utente è stata aggiunta con NuGet Package Manager 1.8. È il terzo elemento sotto Strumenti-> Opzioni-> Gestore pacchetti-> Generale: "Ripristino pacchetto: consente a NuGet di scaricare i pacchetti mancanti durante la compilazione".

In alternativa è possibile fornire il consenso impostando la variabile di ambiente EnableNuGetPackageRestore su true.

+0

Grazie per il suggerimento, ma come ho detto nel mio post, ho creato la variabile di ambiente. Inoltre, non posso immaginare che vorrei è necessario aprire ogni soluzione sul server di generazione e riattivare il ripristino del pacchetto. Si suppone che il server di generazione sia un sistema headless che richiede interazione minima. – farina

1

Se il pacchetto attivato il ripristino, quindi è possibile configurare le sorgenti dei pacchetti utilizzando le <PackageSources> elemento nelle NuGet.targets si file troverete nella $ (SolutionDir) .nuget cartella.

È possibile verificare questi punti nella posizione corretta e se tale percorso è accessibile dal server di generazione?

Problemi correlati