Použití vlastního nuget.exe v konfiguraci buildu na VSTS

Krátce po vydání Visual Studia 2017 přidal tým Visual Studio Team Service nový hostovaný build agent Hosted VS2017 který zahrnuje podporu pro všechny nejnovější verze vývojářských nástrojů Microsoftu. Bohužel, přestožee build task pro Visual Studio build novou verzi 2017 podporuje, nejnovější verze NuGetu ještě přidána nebyla. Naštěstí je ale možné při buildu použít vlastní nuget.exe a použít jej pro restore balíčků projetku, který používá nové <PackageReference> v projektovém souboru csproj.

Získání poslední verze nuget.exe

Podporované verze NuGetu jsou dostupné ke stažení na oficiálním webu. Současná doporučená verze je 3.5.0, ale verze, která je součástí Visual Studia 2017 je 4.0.0

Versions of nuget.exe for download
Verze nuget.exe ke stažení

Protože potřebujeme být schopni referencovat stažený spustitelný soubor při buildu, musíme jej přidat do repozitáře. Svůj nuget.exe jsem vložil do složky tools v kořenovém adresáři.

NuGet in tools folder
NuGet ve složce tools

Nastavení nuget.exe ve VSTS

Po přidání nuget.exe do repozitáře v požadované branchi, otevřeme stránku Build & Release a vytvoříme novou definici buildu nebo otevřeme požadovanou existující pro editaci.

V seznamu tasků vybereme NuGet restore task.

NuGet task
NuGet task

V detailech tasku na pravé straně najdeme sekci Advanced a konfigurujeme použití vlastního nuget.exe a nastavíme relativní cestu k nuget.exe v repozitáři.

Configuring custom nuget.exe
Konfigurace vlastního nuget.exe

Posledním krokem, který provedeme je kontrola, zda používáme skutečně nový Hosted VS2017 build agent v záložce Options v build editoru.

New HostedVS2017 build agent
New HostedVS2017 build agent

Uložíme změny a můžeme build otestovat.

Shrnutí

Přestože NuGet build task ještě nebyl aktualizován pro podporu verze 4.0.0, tento problém můžeme nyní snadno obejít konfigurací vlastního nuget.exe v editoru.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

*