Month: August 2016
Tworzenie paczek NuGet
W skrócie opisze jak tworzyć paczki nuget bezpośrednio z projektu VS.
Wszystkie polecenia będziemy wykonywać narzędziem nuget.exe
Tworzenie paczki release
W folderze z projektem (plik .csporj) uruchamiamy
nuget spec
Po uruchomieniu zostanie utworzony specjalny plik .nuspec o takiej samej nazwie jak nazwa projektu. Plik ten zawiera meta informację na temat paczki.
[xml]
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$description$</description>
<releaseNotes>My project release notes</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>tag1 tag2</tags>
</metadata>
</package>
[/xml]
Dane w formacie $xyz$ oznaczają że te informacje są pobierane z pliku dll.
Gdy plik nuspec mamy już gotowy to budujemy projekt i tworzymy paczkę uruchamiając polecenie:
nuget pack MyProject.csproj
Jeśli chcemy dodać zależne biblioteki to dodajemy parametr IncludeReferencedProjects
nuget pack MyProject.csproj -IncludeReferencedProjects -Prop Configuration=Release
Jeśli paczka się utworzy to wysyłamy ją na serwer poleceniem:
nuget push MyProject.1.0.0.nupkg -s http://yourdomain.com/nuget API_KEY
Tworzenie paczki prerelease
Jeśłi paczkę tworzymy z pliku projektu (.csproj lub .vbproj) to utworzenie paczki prelese ogranicza się do dodania atrybutu AssemblyInformationalVersionAttribute i określeniu wersji:
[assembly: AssemblyInformationalVersion("1.0.1-alpha")]
NuGet użyje tej wartości zamiast danych z AssemblyVersion.
Więcej informacji
Własny serwer NuGet
Każdy kto korzysta z VS wie co to NuGet i jak bardzo on upraszcza życie, dodawanie zewnętrznych bibliotek jest banalnie proste, aktualizacja do nowej wersji – jedno kliknięcie i gotowe. A co jeśli taki serwer możemy sobie sami postawić. O ile prostsze było by współdzielenie bibliotek we własnych projektach. Może w firmie której pracujecie dalej ręcznie podpinacie biblioteki, warto zaproponować postawienie takiego serwera – trwa to chwilę, a uprasza bardzo wiele.
Tworzenie własnego serwera
- Tworzymy pusty projekt ASP.NET Web Application (ASP.NET 4.x)
- Instalujemy paczkę NuGet.Server
- Wdrażamy aplikację na docelowy serwer
NuGet jest dostępy pod adresem http://yourdomain/nuget - Konfigurujemy i cieszymy się własnym serwerem NuGet
Konfiguracja
Konfiguracja to ustawienie odpowiednich wpisów w pliku web.config
Pierwsze co robimy to ustawienie klucza umożliwiającego wrzucanie paczek:
[xml]
<add key="apiKey" value="YOUR-API-KEY" />
[/xml]
Na czas testów możemy ustawić allowOverrideExistingPackageOnPush na true, co może się przydać jak zaczniemy uczyć się tworzyć paszki i wrzucać je na serwer.
[xml] <add key="allowOverrideExistingPackageOnPush" value="false" /> [/xml]
Wrzucanie paczek
Paczki wrzucamy aplikacją nuget.exe z parametrem push:
[bash]
nuget push {packagefile} -s http://yourdomain/nuget {apikey}
[/bash]
Kunfiguracja VisualStudio
Aby paczki z naszego serwera były widoczne w VS musimy dodać go do listy Package Sources. Aby to zrobić w VS 2015 otwieramy okno dodawania źródeł dla nugeta: Tools -> NuGet Package Manager -> Package Manager Settings.
W otwartym oknie wybieramy Package Sources
Klikamy dodaj i uzupełniamy dane naszego serwera.
Po zatwierdzeniu nasz serwer jest już widoczny na liście:
Teraz już możemy instalować z niego paczki.
Podsumowanie
Jak widać instalacja i konfiguracja własnego serwera NuGet to tylko kilka minut, a korzyść bardzo wiele. Myślę że warto to wdrożyć dla swoich projektów jak również w firmie jeśli dalej ręcznie podpinacie zewnętrzne biblioteki.
Więcej informacji: