2012-02-09 35 views
19

Mamy projekt ASP.NET MVC, który chcemy utworzyć pakiet publikowania podczas kompilacji zautomatyzowanej. Kompilacja korzysta z niezmodyfikowanego domyślnego szablonu z Argumentami /p:DeployOnBuild=True /p:CreatePackageOnPublish=True.TFS 2010 - Wystąpił błąd podczas kopiowania: Ścieżka zbyt długa

Jeśli robię WebDeploy bezpośrednio na serwerze, to działa dobrze (jeśli zmienię/p: CreatePackageOnPublish na false), ale wolałbym po prostu utworzyć pakiet, który będę mógł wdrożyć podczas kompilacji Lab.

Komunikat o błędzie wygląda następująco:

TF270002: Wystąpił błąd podczas kopiowania plików z 'C: \ Buduje \ 19 \ Binaries' do „\ NAS \ Budowa \ upuść \ myproject \ MyProject_Development.Test \ 20120209.1 ". Szczegóły: podana ścieżka, nazwa pliku lub obie są zbyt długie. Pełna nazwa pliku musi mieć mniej niż 260 znaków, a nazwa katalogu musi być krótsza niż 248 znaków.

Pierwsza część problemu był Ścieżka folderu build był zbyt długi (274 znaków), ale po zmianie katalogu roboczego od $(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath) do $(SystemDrive)\Builds\$(BuildDefinitionId) to w dół do 230 znaków jak najdłuższej ścieżce więc powinno być OK.

Problem wydaje się być obecnie ścieżką w folderze rozwijanym, mimo że jego ścieżka do katalogu głównego nie jest długa sama w sobie \\nas\Build\Drop\MyProject, nazwa kompilacji i format numeru wersji szybko zwiększają długość MyProject_Development.Test\MyProject_Development.Test_20120208.1. Po tym wszystkie zagnieżdżone ścieżki tworzą naprawdę głębokie struktury folderów: _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.

Czy istnieje sposób na obejście tego problemu? Skróciłem format numeru kompilacji z $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r) do $(Date:yyyyMMdd)$(Rev:.r), aby zapisać kilka znaków, ale to nie wystarczy. Myślę, że mogliśmy nieco skrócić nazwę kompilacji, ale złamałoby to konwencję nazewnictwa (Ok, to nie byłby naprawdę duży problem, ale byłoby denerwujące!) I nadal byłoby to krótkoterminowe rozwiązanie.

Co jeszcze można zrobić?

Odpowiedz

13

Krótka odpowiedź to ograniczenie długości ścieżki, które jest naprawdę denerwujące i będziesz musiał spędzić trochę (więcej) czasu na poprawianiu struktury plików/folderów, aby to działało.

Na przykład zamiast \ nas \ Build \ Drop \ MyProject, po prostu wykonaj \ nas \ Build \ Drop (lub \ nas \ Builds), ponieważ nazwa projektu znajduje się również w nazwie kompilacji.

Spłaszczyć strukturę folderów w swoich projektach (czy naprawdę potrzebujesz folderu Source w MyProject?).

Również przejść głos za sugestię UserVoice dla zespołu TFS naprawić ograniczenia długości ścieżki: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2156195-fix-260-character-file-name-length-limitation

+0

Bałam się, że nie było to lepsze rozwiązanie ... Mam przycięte jak najwięcej z Nadmiar (moja kompilacja nazywa się teraz M_D.T, naprawdę pouczająca) i teraz się buduje, mimo że moja najdłuższa ścieżka to 250 znaków, więc nieco zbliżyć się do limitu komfortu. Dziękujemy za odpowiedź i link do UserVoice! –

+1

Aktualizacja: propozycja rozwiązania problemu została odrzucona przez firmę Microsoft. –

+2

nowy link głosowy użytkownika, utrzymuj ciśnienie w górę;) http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4954037-fix-260-character-file-name- length-limitation – rob

Powiązane problemy