Ulepszenia zarządzania pakietami w programie WMF 5.1

Poniżej przedstawiono poprawki wprowadzone w programie WMF 5.1:

Alias wersji

Scenariusz: Jeśli masz wersję 1.0 i 2.0 pakietu, P1, zainstalowaną w systemie i chcesz odinstalować wersję 1.0, uruchom Uninstall-Package -Name P1 -Version 1.0 polecenie i oczekujesz odinstalowania wersji 1.0 po uruchomieniu polecenia cmdlet. Jednak wynikiem jest odinstalowanie wersji 2.0.

Dzieje się tak, ponieważ -Version parametr jest aliasem parametru -MinimumVersion . Gdy pakiet PackageManagement szuka kwalifikowanego pakietu z minimalną wersją 1.0, zwraca najnowszą wersję. To zachowanie jest oczekiwane w normalnych przypadkach, ponieważ znalezienie najnowszej wersji jest zwykle pożądanym wynikiem. Nie należy jednak stosować go do Uninstall-Package sprawy.

Solution:usunięto -Version alias całkowicie w elemecie PackageManagement (np. OneGet) i PowerShellGet.

Wiele monitów o uruchomienie dostawcy NuGet

Scenariusz: Podczas uruchamiania lub Install-Module innych poleceń cmdlet PackageManagement na komputerze po raz pierwszy narzędzie PackageManagement próbuje uruchomić Find-Module dostawcę NuGet. Dzieje się tak, ponieważ dostawca PowerShellGet używa również dostawcy NuGet do pobierania modułów programu PowerShell. Funkcja PackageManagement następnie monituje użytkownika o uprawnienie do zainstalowania dostawcy NuGet. Po wybraniu przez użytkownika opcji "yes" dla bootstrapping zostanie zainstalowana najnowsza wersja dostawcy NuGet.

Jednak w niektórych przypadkach, gdy na komputerze jest zainstalowana stara wersja dostawcy NuGet, starsza wersja narzędzia NuGet czasami jest ładowana jako pierwsza do sesji programu PowerShell (jest to warunek wyścigu w pakiecie PackageManagement). Jednak moduł PowerShellGet wymaga, aby późniejsza wersja dostawcy NuGet działała, dlatego polecenie PowerShellGet ponownie poprosi moduł PackageManagement o ponowne uruchomienie dostawcy NuGet. Spowoduje to wyświetlenie wielu monitów o uruchomienie dostawcy NuGet.

Rozwiązanie: W programie WMF5.1 pakiet PackageManagement ładuje najnowszą wersję dostawcy NuGet, aby uniknąć wielu monitów o uruchomienie dostawcy NuGet.

Ten problem można również obejść, ręcznie usuwając starą wersję dostawcy NuGet (NuGet-Anycpu.exe), jeśli istnieje z $env:ProgramFiles\PackageManagement\ProviderAssemblies $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies

Obsługa funkcji PackageManagement na komputerach z dostępem tylko do intranetu

Scenariusz: W scenariuszu przedsiębiorstwa ludzie pracują w środowisku, w którym nie ma dostępu do Internetu, ale tylko intranet. PackageManagement nie obsługiwał tego przypadku w programie WMF 5.0.

Scenariusz: W programie WMF 5.0 funkcja PackageManagement nie obsługiwała komputerów, które mają dostęp tylko do Intranetu (ale nie Internetu).

Rozwiązanie: W programie WMF 5.1 można wykonać następujące kroki, aby umożliwić komputerom intranetowym korzystanie z funkcji PackageManagement:

  1. Pobierz dostawcę NuGet przy użyciu innego komputera z połączeniem internetowym przy użyciu polecenia Install-PackageProvider -Name NuGet.

  2. Znajdź dostawcę NuGet w obszarze lub $env:ProgramFiles\PackageManagement\ProviderAssemblies\nuget$env:LOCALAPPDATA\PackageManagement\ProviderAssemblies\nuget.

  3. Skopiuj pliki binarne do folderu lub lokalizacji udziału sieciowego, do której komputer intranetowy może uzyskać dostęp, a następnie zainstaluj dostawcę NuGet za pomocą polecenia Install-PackageProvider -Name NuGet -Source <Path to folder>.

Ulepszenia rejestrowania zdarzeń

Podczas instalowania pakietów zmienia się stan komputera. W programie WMF 5.1 funkcja PackageManagement rejestruje teraz zdarzenia w dzienniku zdarzeń systemu Windows dla Install-Package, Uninstall-Packagei Save-Package działań. Dziennik zdarzeń jest taki sam jak w programie PowerShell, Microsoft-Windows-PowerShell, Operationalczyli .

Obsługa uwierzytelniania podstawowego

W programie WMF 5.1 funkcja PackageManagement obsługuje znajdowanie i instalowanie pakietów z repozytorium, które wymaga uwierzytelniania podstawowego. Poświadczenia można podać do Find-Package poleceń cmdlet i Install-Package . Na przykład:

Find-Package -Source <SourceWithCredential> -Credential (Get-Credential)

Obsługa korzystania z funkcji PackageManagement za serwerem proxy

W programie WMF 5.1 funkcja PackageManagement przyjmuje teraz nowe parametry -ProxyCredential serwera proxy i -Proxy. Korzystając z tych parametrów, można określić adres URL serwera proxy i poświadczenia do poleceń cmdlet PackageManagement. Domyślnie są używane ustawienia serwera proxy systemu. Na przykład:

Find-Package -Source https://www.nuget.org/api/v2/ -Proxy http://www.myproxyserver.com -ProxyCredential (Get-Credential)