W NuGet fajne jest to, że jeżeli w firmie tworzycie paczki, których nie chcecie upubliczniać to macie taką możliwość.

Ja ostatnio przekonałem częściowo firmę by z tego skorzystała, i zamiast mieć referencje po katalogach (co wymaga by każdy miał zgodną strukturę katalogów) lub referencje poprzez duplikowanie projektów, miała własny serwer NuGet do którego będziemy publikować paczki dla naszych lokalnych projektów.

Na stronach NuGet jest piękny i przejrzysty artykuł opisujący w jaki sposób za pomocą pustego WebApplication i paczki NuGet.Sever stworzyć sobie lokalny webowy serwer NuGet. Pewnie opis na stronie wystarczy 90% ludziom i po odpaleniu wszystko będzie im działało.

Ja jednak nie zaliczam się do tych 90% :)

Po pierwsze, już samo to, że będzie to hostowane poprzez URL, powinno zapalić światełko ludziom, którzy chcą ustalić ścieżkę do katalogu, w którym będą przechowywane paczki. Jak wiadomo, bez uprawnień to by możemy i możemy próbować się do katalogu dostać a i tak dostaniemy błąd.

Więc najpierw upewnijcie się czy wasz katalog, do którego chcecie wrzucać paczki ma odpowiednie uprawnienia – zobaczcie AppPool jaki wykorzystujecie i nadajcie odpowiedniemu użytkownikowi prawa modyfikacji zawartości danego katalogu.

Po drugie, o czym już nigdzie nie piszą, NuGet.Server nie działa z WebDAV, który standardowo nie jest instalowany, ale jeżeli już jest zainstalowany to przechwytuje operację PUT. Co powoduje, iż będziecie dostawać piękny błąd:

(405) Method not Allowed.

Pierwsze rozwiązanie, jakie przychodzi na myśl to usunięcie tego badziewia, ale znów, może na serwerze są strony SPS lub TFS Project sites? I WebDav może jest naprawdę wymagany?

Jeżeli nie jest, to wywalcie go, po co on wam. Jeżeli zaś jest, i tak było w moim przypadku, to do web.config w sekcji system.webServer/modules dodajcie taki o to wpis:

<remove name="WebDAVModule" />

I cieszcie się swoim własnym lokalnym serwerem NuGet :) póki możecie ;)

PS.: jak potrzebujecie coś więcej, to możecie zobaczyć NuGet.Gallery.

6 KOMENTARZE

  1. Do prywatnego firmowego repozytorium alternatywnym rozwiązaniem jest utworzenie zasobu na serwerze plików dla naszych paczek. Efekt podobny ale bez jednej pośredniczącej warstwy.

  2. @jwjw i @rek

    niby tak, jak ty jako pracownik siedzisz w firmie i masz dostep do ich zasobow sieciowych.

    Jezeli pracujesz zdalnie, i masz dostep do domeny X, zas wszystkie ich zasoby sa w domenie Y, i jedynie dzialasz po przez VPN i wkurza Cie to ze musisz ciagle podawac hasla by sie dostac do pewnych rzeczy, web access jest najlepszym rozwiazaniem :)

  3. Swietna sprawa :) Korzystamy z ekipa w firmie i swietnie sie sprawdza z TeamCity.

    Dodatkowo hostuje sobie rozne wlasnie "pierdolki" na zewnetrznym hostingu.

Comments are closed.