fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
2 minut

NuGet package restore na Mono


09.09.2013

Przy starcie aktualnego projektu pierwsze tygodnie spędziłem na rozpoznawaniu Mono na Linuxie (Ubuntu) i możliwości uruchomienia na nim wszystkiego co mi potrzeba. Na pierwszy problem natknąłem się już na samym początku, bowiem podczas kompilacji projektu (pisanego na Windowsach w VS) xbuildem próba ściągnięcia zdefiniowanych pakietów przez NuGet v2.6 (poprzez “package restore”) kończyła się niepowodzeniem. Dostawałem komunikat, że nuget “exited with code: 1” i koniec, radź sobie sam.

No to poradziłem.

Mała uwaga: niedawno wyszła niedawno wersja 2.7 NuGeta. Być może rozwiązuje ona ten problem, być może eliminuje niektóre z poniższych kroków, ale nie sprawdzałem więc publikuję mimo to.

Tak czy siak rozwiązaniem problemu okazało się wykonanie poniższych instrukcji:

1. skopiowanie pliku “C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.Build.dll” do katalogu ./nuget tworzonego podczas włączania opcji “package restore” i wysłanie go do repozytorium

2. jednorazowe odpalenie na Linuxie komendy importującej certyfikaty wymagane do ściągnięcia pakietów

mozroots –import –sync

3. wykonanie na Linuxie komendy “wyrażającej zgodę” na ściągnięcie pakietów

export EnableNuGetPackageRestore=true

4. modyfikacja pliku nuget.targets jak napisano w tym zgłoszeniu na codeplex https://nuget.codeplex.com/workitem/3435/:

4.1. dodanie do PropertyGroup:

<SolutionDirTrimmed Condition=” ‘$(OS)’ != ‘Windows_NT'”>$(SolutionDir)</SolutionDirTrimmed>

<SolutionDirTrimmed Condition=” ‘$(OS)’ == ‘Windows_NT'”>$(SolutionDir.Trim(‘\\’))</SolutionDirTrimmed>

4.2. wykorzystanie tego w RestoreCommand:

<RestoreCommand>$(NuGetCommand) install “$(PackagesConfig)” -source “$(PackageSources)” $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir “$(SolutionDirTrimmed)”</RestoreCommand>

Po tych zabiegach pakiety ślicznie się ściągają i instalują. Szafa gra. Znowu z powodu bugów w produktach MS pół dnia poszło się …., ale działa.

0 0 votes
Article Rating
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Tomek
Tomek
11 years ago

“Przy starcie aktualnego projektu pierwsze tygodnie spędziłem na rozpoznawaniu Mono na Linuxie ” – czemu Linux ? Myślałem, że ludzie używają Mono tylko tak dla zajawki, żeby sprawdzić czy i jak to działa, ale żeby coś na serio w tym robić ? Po co ?

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również