NuGet dla rozwiązań z wieloma projektami
Załóżmy, że mam rozwiązanie z 3 projektami:
- Rdzeń
- UI
- testy
Niektóre pakiety NuGet, których używam, będą miały zastosowanie do wszystkich 3 projektów. Niektóre będą po prostu stosować się do interfejsu użytkownika i testów, a niektóre będą po prostu stosować się do testów (jak NUnit).
Jaki jest właściwy sposób skonfigurowania tego za pomocą NuGet?
- Czy powinienem użyć "Add Library Package Reference" we wszystkich trzech projektach, kiedy będę potrzebował referencji?
- Czy powinienem użyć "Dodaj bibliotekę Package Reference " kiedy po raz pierwszy potrzebuję pakietu, a następnie użyć Add Reference->Browse for next usages?
W obu przypadkach, ile pakietów.config pliki, które powinienem mieć?
6 answers
Dla każdego, kto natknie się na to, teraz jest następująca opcja:
Kliknij prawym przyciskiem myszy swoje rozwiązanie > Zarządzaj pakietami NuGet dla rozwiązania...
... Lub:
Narzędzia > Menedżer pakietów bibliotek > Zarządzaj pakietami NuGet dla rozwiązania...
I jeśli przejdziesz do obszaru zainstalowane pakiety, możesz "zarządzać" pojedynczym pakietem w każdym projekcie w rozwiązaniu.
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-03-09 14:39:06
Możesz użyć konsoli do kierowania wielu projektów
Tools > Library Package Manager > Package Manager Console
Następnie użyj tego polecenia
Get-Project PROJECT-NAMES-WITH-COMMAS | Install-Package PACKAGENAME
Na przykład
Get-Project Core,UI | Install-Package FluentDateTime
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
2012-06-06 06:03:06
Ta słodka transakcja działa dla mnie:
PM> Get-Project -all | where {$_.Name -match "Songhay.Silverlight" -and
$_.Name -notmatch "ApplicationLoader" -and $_.Name -notmatch ".Xml"}
| ForEach-Object {Install-Package MvvmLight -project $_.Name}
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
2011-05-04 19:34:15
Jeśli chcesz zainstalować pakiet w wielu rozwiązaniach, napisałem do tego poręczny skrypt Powershell, zobacz Tutaj .
Możesz nawet filtrować polecenie Get-Project -All
i kierować pod-zestaw listy projektów.
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
2018-02-20 04:21:09
Powinieneś użyć "Add Library Package Reference" dla wszystkich Twoich zewnętrznych bibliotek w każdym projekcie w Twoim rozwiązaniu. Skończysz z paczką.config na projekt.
Jednak pakiet zostanie pobrany tylko raz i ponownie wykorzystany lokalnie dla wszystkich innych projektów.
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
2011-03-24 12:11:33
W Package Manager Console możesz napisać następującą komendę :
Get-Project -all | ForEach-Object {Get-Package -ProjectName $_.Name -filter
PACKAGE_NAME} | where-object { $_.id -eq 'PACKAGE_NAME' } | Install-Package
PACKAGE_NAME -Version VERSION
Możesz użyć tego polecenia również do instalacji lub aktualizacji (Update-Package)
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-10-02 10:19:56