2012-02-09 14 views
19

Abbiamo un progetto MVC ASP.NET che vogliamo creare un pacchetto di pubblicazione durante una compilazione automatizzata. La build utilizza il modello predefinito non modificato con Argomenti /p:DeployOnBuild=True /p:CreatePackageOnPublish=True.TFS 2010 - Errore durante la copia: percorso troppo lungo

Se eseguo un WebDeploy direttamente su un server, funziona correttamente (se cambio/p: CreatePackageOnPublish su false), ma preferirei semplicemente creare un pacchetto che possa essere distribuito durante una build di Lab.

Il messaggio di errore si presenta così:

TF270002: Si è verificato un errore durante la copia di file da 'C: \ Builds \ 19 \ binari' a '\ nas \ costruire \ Drop \ MyProject \ MyProject_Development.Test \ 20.120.209,1' . Dettagli: il percorso, il nome file o entrambi sono troppo lunghi. Il nome file completo deve essere inferiore a 260 caratteri e il nome della directory deve essere inferiore a 248 caratteri.

La prima parte del problema è stato il percorso della cartella di build era troppo lungo (274 caratteri), ma dopo aver cambiato la directory di lavoro $(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)-$(SystemDrive)\Builds\$(BuildDefinitionId) si è scesi a 230 caratteri come il percorso più lungo e quindi dovrebbe essere ok.

Il problema ora sembra essere il percorso nella cartella di ricezione, anche se è percorso principale non è così a lungo da solo \\nas\Build\Drop\MyProject, il nome di build e numero di build Formato aggiunge rapidamente alla lunghezza MyProject_Development.Test\MyProject_Development.Test_20120208.1. Dopo che tutti i percorsi nidificati creano strutture di cartelle davvero profonde _PublishedWebsites\MyProject.Web_Package\Archive\Content\C_C\Builds\19\Sources\MyProject\Source\MyProject.Web\obj\Debug\Package\PackageTmp\Content\ui-lightness\Images\ui-bg_diagonals-thick_18_b81900_40x40.png.

Quindi c'è un modo per aggirare questo problema? Ho ridotto il formato del numero di build da $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r) a $(Date:yyyyMMdd)$(Rev:.r) per salvare alcuni caratteri, ma non è sufficiente. Immagino che potremmo abbreviare il nome della build un po ', ma romperebbe la convenzione di denominazione usata (Ok, non sarebbe un grosso problema ma sarebbe noioso!) E comunque sembrerebbe una soluzione a breve termine.

Cos'altro c'è da fare?

risposta

13

La risposta breve è che la limitazione della lunghezza del percorso è davvero fastidiosa e dovrete spendere un po '(più) tempo per modificare la struttura del vostro file/cartella per far funzionare questo.

Ad esempio invece di \ nas \ Build \ Drop \ MyProject, basta fare \ nas \ Build \ Drop (o \ nas \ Builds) poiché il nome del progetto è anche nel nome della build.

Appiattisci la struttura delle cartelle nei tuoi progetti (hai davvero bisogno di una cartella di origine in MyProject?).

Inoltre, andare a votare per il suggerimento UserVoice per la squadra TFS per fissare i limiti di lunghezza percorso: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2156195-fix-260-character-file-name-length-limitation

+0

avevo paura che non c'era soluzione migliore a questo ... ho tagliato il più possibile della eccesso (la mia build è ora chiamata M_D.T, davvero informativa) e ora si costruisce anche se il mio percorso più lungo è di 250 caratteri quindi è un po 'vicino al limite per il comfort. Grazie per la tua risposta e il link a UserVoice! Aggiornamento –

+1

: il suggerimento di funzionalità per risolvere il problema è stato rifiutato da Microsoft. –

+2

nuovo collegamento vocale utente, mantieni la pressione;) http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4954037-fix-260-character-file-name-length-limitation – rob

Problemi correlati