Vylepšení Správy balíčků ve WMF 5.1

Následující opravy jsou uvedené v WMF 5.1:

Alias verze

Scénář: Pokud máte v systému nainstalovanou verzi 1.0 a 2.0 balíčku, P1 a chcete odinstalovat verzi 1.0, spustíte a očekáváte Uninstall-Package -Name P1 -Version 1.0 , že se po spuštění rutiny odinstaluje verze 1.0. Výsledkem je však odinstalace verze 2.0.

K tomu dochází, protože -Version parametr je alias parametru -MinimumVersion . Když PackageManagement hledá kvalifikovaný balíček s minimální verzí 1.0, vrátí nejnovější verzi. Toto chování se očekává v normálních případech, protože nalezení nejnovější verze je obvykle požadovaným výsledkem. Nemělo by se však vztahovat na případ Uninstall-Package .

Solution:removed -Version alias zcela v PackageManagement (a.k.a. OneGet) a PowerShellGet.

Několik výzev k spuštění zprostředkovatele NuGet

Scénář: Při prvním spuštění Find-Module nebo Install-Module jiných rutin PackageManagement v počítači se PackageManagement pokusí spustit zprostředkovatele NuGet. Dělá to, protože zprostředkovatel PowerShellGet také používá zprostředkovatele NuGet ke stažení modulů PowerShellu. PackageManagement pak vyzve uživatele k zadání oprávnění k instalaci zprostředkovatele NuGet. Jakmile uživatel pro spuštění vybere ano, nainstaluje se nejnovější verze zprostředkovatele NuGet.

V některých případech se však při instalaci staré verze zprostředkovatele NuGet na vašem počítači někdy starší verze NuGetu poprvé načte do relace PowerShellu (to je podmínka časování v PackageManagement). PowerShellGet však vyžaduje, aby fungovala novější verze zprostředkovatele NuGet, takže PowerShellGet požádá PackageManagement o opětovné spuštění zprostředkovatele NuGet. Výsledkem je několik výzev k spuštění zprostředkovatele NuGet.

Řešení: Ve WMF5.1 načte PackageManagement nejnovější verzi zprostředkovatele NuGet, aby se zabránilo více výzev k spuštění zprostředkovatele NuGet.

Tento problém můžete vyřešit také ručním odstraněním staré verze zprostředkovatele NuGet (NuGet-Anycpu.exe), pokud existuje z $env:ProgramFiles\PackageManagement\ProviderAssemblies $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies

Podpora packageManagement na počítačích s přístupem k intranetu

Scénář: V případě podnikového scénáře pracují lidé v prostředí, kde není přístup k internetu, ale pouze intranet. PackageManagement tento případ ve WMF 5.0 nepodporuje.

Scénář: V WMF 5.0 packageManagement nepodporuje počítače, které mají pouze intranetový (ale ne internetový) přístup.

Řešení: V WMF 5.1 můžete podle těchto kroků povolit intranetové počítače používat PackageManagement:

  1. Stáhněte poskytovatele NuGet pomocí jiného počítače, který má připojení k internetu pomocí Install-PackageProvider -Name NuGet.

  2. Vyhledejte poskytovatele NuGet v rámci nebo $env:ProgramFiles\PackageManagement\ProviderAssemblies\nuget$env:LOCALAPPDATA\PackageManagement\ProviderAssemblies\nuget.

  3. Zkopírujte binární soubory do složky nebo síťové sdílené složky, ke které má intranetový počítač přístup, a pak nainstalujte zprostředkovatele NuGet pomocí Install-PackageProvider -Name NuGet -Source <Path to folder>.

Vylepšení protokolování událostí

Při instalaci balíčků měníte stav počítače. Ve WMF 5.1 teď PackageManagement protokoluje události do protokolu událostí Systému Windows pro Install-Package, Uninstall-Packagea Save-Package aktivity. Protokol událostí je stejný jako pro PowerShell, Microsoft-Windows-PowerShell, Operationalto znamená .

Podpora základního ověřování

V WMF 5.1 packageManagement podporuje hledání a instalaci balíčků z úložiště, které vyžaduje základní ověřování. Přihlašovací údaje můžete zadat do rutin Find-Package a Install-Package rutin. Příklad:

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

Podpora použití PackageManagementu za proxy serverem

V WMF 5.1 packageManagement nyní přebírá nové parametry -ProxyCredential proxy serveru a -Proxy. Pomocí těchto parametrů můžete zadat adresu URL proxy serveru a přihlašovací údaje rutin PackageManagement. Ve výchozím nastavení se používá nastavení proxy serveru systému. Příklad:

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