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ć?
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! –
Aktualizacja: propozycja rozwiązania problemu została odrzucona przez firmę Microsoft. –
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