Tworzenie usługi Team Foundation nie powiodło się podczas przywracania pakietu NuGet

Mam dziwny problem z budową serwisu Team Foundation. Ustawiam go w kolejce i zaczyna się dobrze, ale potem zawodzi z następującym błędem:

C:\a\src\Platform\Prod\Platform.Web\Platform.Web.csproj (436): The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568.

Więc przestawiam kompilację na wiadomość / URL and...it to się powtórzy. Wygooglowałem, ale nie mogę rozgryźć, w czym problem. Mogę zbudować dobrze w Visual Studio i rozwiązanie jest skonfigurowane do przywracania pakietów. Jakieś pomysły?

Z góry dzięki.
Author: Matt, 2013-09-24

8 answers

Rozwiązanie tego problemu jest podane w link w samym komunikacie o błędzie.

Dzieje się tak ze względu na poprawę określoną na tej stronie:

Poprawa

Zaktualizowaliśmy Microsoft.Bcl.Zbuduj, aby użyć innego podejścia. Nowy wersja użyje warunkowego importu podobnego do tego, co NuGet funkcja automatycznego importu działa. To zawsze pozwoli projektowi na załaduj w Visual Studio.

Jednak, Microsoft.Bcl.Build dodaje również cel do projektu, który zostanie uruchomiony po zakończeniu kompilacji. Cel ten sprawdza, czy current build przywrócone pakiety i jeśli tak się nie uda budować z komunikat o błędzie:

Budowanie po raz drugi naprawi ten błąd. Należy pamiętać, że to błąd pojawi się tylko wtedy, gdy brakuje pakietów, więc nie jest to tak, jak ty zawsze trzeba budować dwa razy.

Następnie określa jak poniżej dla przypadku build server / continuous integracja (CI):

To rozwiązanie nie dotyczy serwera build / ciągłej integracji Scenariusze. Aby z powodzeniem korzystać z przywracania pakietu na zbuduj serwer, masz dwie opcje:

  1. Check-in the .plik celów.
  2. jawnie Uruchom NuGet package restore przed zbudowaniem projektu / rozwiązania.

Więc przypuszczam, że w celu rozwiązania problemu należy postępować zgodnie z powyższymi dwoma krokami.

 15
Author: RinoTom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-25 17:05:40

Jeśli ktoś nadal ma ten problem na tfs build server musisz wykonać następujące czynności:

  1. Upewnij się, że wszystkie projekty w rozwiązaniu, które próbujesz zbudować, mają najnowszą wersję Microsoft.Bcl.Buduj pakiet (wystarczy go zaktualizować w menedżerze pakietów).
  2. po niepowodzeniu kompilacji zobacz wszystkie projekty (w podsumowaniu dziennika budowy tfs), które generują ten błąd ("the build restarted NuGet packages ...")
  3. Otwórz każdy z tych projektów .plik proj i skomentuj cały element docelowy zaczynający się od ' Target Name= "EnsureBclBuildImported" "
  4. Sprawdź i spróbuj ponownie zbudować

Wygląda na to, że po aktualizacji nie wszystkie projekty usuwają Stary blok kodu build i powoduje to problemy(jak rozumiem, nie jest już potrzebny po tym, jak microsoft zmienił proces budowania bcl).

 47
Author: Michael Logutov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-23 05:40:09

Co za ból. Po prostu miałem ten sam problem z TeamCity zamiast TFS. Jawnie przywracamy pakiety przed ich zbudowaniem, jednak niektóre projekty nadal popełniają błędy na serwerze CI. Udało nam się go rozwiązać bez hakowania plików csproj, wymuszając właściwość build BclBuildImported = True po przywróceniu pakietów - nieuczciwe cele w plikach csproj są uzależnione od tego, czy ta właściwość nie jest ustawiona.

Może być bardziej solidnym sposobem obejścia go, jeśli możesz łatwo ustawić tę właściwość w TFS.

 0
Author: lesscode,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-06 20:57:28

Albo wymagane pliki docelowe TFSBuild muszą zostać włączone do kontroli źródła, albo pakiety NuGet muszą zostać przywrócone przed próbą zbudowania rozwiązania.

Szczegóły jak to zrobić znajdują się na nuget.org .

Polega na stworzeniu nowego pliku projektu, który najpierw przywraca Pakiety, a następnie buduje Twoje rozwiązanie.

 0
Author: Scott Munro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-17 00:04:36

Natknąłem się na ten problem w projekcie Web API, ale używamy NAnt.

Celem było zaktualizowanie pakietu Microsoft BCL Build Components NuGet do najnowszej wersji (1.0.21).

 0
Author: GotDibbs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-12 21:29:36

Otwórz plik CSPROJ w notatniku lub innym edytorze. Sprawdź, czy docelowy EnsureBclBuildImported jest dostępny w csproj. Jeśli tak, skomentuj drugi warunek błędu wewnątrz celu, który kieruje kompilację do fail, nawet jeśli pakiet jest dostępny (podobnie jak fail kompilacji niezależnie od pakietu jest dostępny lub nie!).



http://go.microsoft.com/fwlink/?LinkID=317567 ." HelpKeyword= "BCLBUILD2001" />

http://go.microsoft.com/fwlink/?LinkID=317568 ." HelpKeyword= "BCLBUILD2002" />

 0
Author: Saurabh Jha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-09 12:20:31

Widziałem podobny problem w projekcie Xamarin i wykonanie następujących kroków naprawiło mój problem;

  1. Ustaw tryb projektu, aby zwolnić i odbudować wszystkie
  2. Ustaw tryb projektu z powrotem do debugowania i odbudowy wszystkich
  3. problem rozwiązany.

Dziwne, ale zadziałało na mnie, mam nadzieję, że pomoże.

 0
Author: Nurhak Kaya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-13 11:46:40

Musiałem przywrócić pakiety przed czystym celem skryptu budowania. Omyłkowo myślałem, że przywrócenie pakietów przed budową wystarczy.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets='GatherBinaries' xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>

    <Target Name='RestorePackages'>
        <Exec Command='tools\NuGet.exe Restore "Web.sln"'/>
    </Target>

    <!--
        must call RestorePackages prior to clean to avoid error the following error
        "The build restored NuGet packages. Build the project again to include these packages in the build."
        -->
    <Target Name='Clean' DependsOnTargets='RestorePackages'>
        <MSBuild Projects='Web.sln' Targets='Clean' Properties='Configuration=Release'/>
    </Target>

    <Target Name='Build' DependsOnTargets='Clean;RestorePackages'>
        <MSBuild Projects='Web.sln' Targets='Build' Properties='Configuration=Release'/>
    </Target>

</Project>
 0
Author: mcdon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-14 23:09:36