Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Från och med version 1.6.0 ger PowerShellGet och PowerShell-galleriet stöd för taggning av versioner som är större än 1.0.0 som en förhandsversion. Före den här funktionen var förhandsversionspaket begränsade till att ha en version som började med 0. Målet med dessa funktioner är att ge bättre stöd för SemVer v1.0.0-versionshanteringskonventionen utan att bryta bakåtkompatibiliteten med PowerShell-versionerna 3 och senare, eller befintliga versioner av PowerShellGet. Det här avsnittet fokuserar på de modulspecifika funktionerna. Motsvarande funktioner för skript finns i avsnittet Förhandsversioner av skript . Med hjälp av dessa funktioner kan utgivare identifiera en modul eller ett skript som version 2.5.0-alpha och senare släppa en produktionsklar version 2.5.0 som ersätter förhandsversionen.
På en hög nivå omfattar förhandsversionsmodulens funktioner:
- Om du lägger till en förhandsversionssträng i PSData-avsnittet i modulmanifestet identifieras modulen som en förhandsversion. När modulen publiceras till PowerShell-galleriet extraheras dessa data från manifestet och används för att identifiera förhandsversionspaket.
- Att hämta förhandsversionspaket kräver att du lägger till
-AllowPrereleaseen flagga i PowerShellGet-kommandonaFind-Module,Install-Module,Update-ModuleochSave-Module. Om flaggan inte anges visas inte förhandsversionspaket. - Modulversioner som visas av
Find-Module,Get-InstalledModuleoch i PowerShell-galleriet visas som en enda sträng med förhandsversionssträngen tillagd, som i 2.5.0-alpha.
Detaljer om funktionerna finns nedan.
Dessa ändringar påverkar inte stödet för modulversionen som är inbyggt i PowerShell och är kompatibla med PowerShell 3.0, 4.0 och 5.
Identifiera en modulversion som en förhandsversion
PowerShellFå support för förhandsversioner kräver användning av två fält i modulmanifestet:
- Den ModuleVersion som ingår i modulmanifestet måste vara en version i 3 delar om en förhandsversion används och måste följa befintlig PowerShell-versionshantering. Versionsformatet skulle vara A.B.C, där A, B och C alla är heltal.
- Förhandsversionssträngen anges i modulmanifestet i avsnittet PSData i PrivateData.
Detaljerade krav för förhandsversionssträngen finns nedan.
Ett exempelavsnitt i ett modulmanifest som definierar en modul som en förhandsversion skulle se ut så här:
@{
ModuleVersion = '2.5.0'
#---
PrivateData = @{
PSData = @{
Prerelease = 'alpha'
}
}
}
De detaljerade kraven för förhandsversionssträngen är:
- Förhandsversionssträngen kan bara anges när ModuleVersion är 3 segment för Major.Minor.Build. Detta överensstämmer med SemVer v1.0.0.
- Ett bindestreck är avgränsaren mellan byggnumret och förhandsversionssträngen. Ett bindestreck kan endast ingå i förhandsversionssträngen som det första tecknet.
- Förhandsversionssträngen får endast innehålla alfanumeriska ASCII-värden [0-9A-Za-z-]. Det är bästa praxis att börja förhandsversionssträngen med ett alfatecken, eftersom det blir lättare att identifiera att det här är en förhandsversion när du skannar en lista med paket.
- Endast SemVer v1.0.0 förhandsversionssträngar stöds för närvarande. Förhandsversionssträngen får inte innehålla antingen punkt eller + [.+], som tillåts i SemVer 2.0.
- Exempel på förhandsversionssträngar som stöds är: -alpha, -alpha1, -BETA, -update20171020
Förhandsversioner av versionshantering påverkar sorteringsordning och installationsmappar
Sorteringsordningen ändras när du använder en förhandsversion, vilket är viktigt när du publicerar till PowerShell-galleriet och när du installerar moduler med hjälp av PowerShellGet-kommandon. Om förhandsversionssträngen har angetts för två moduler baseras sorteringsordningen på strängdelen efter bindestrecket. Version 2.5.0-alpha är alltså mindre än 2.5.0-beta, vilket är mindre än 2.5.0-gamma. Om två moduler har samma ModuleVersion, och endast en har en förhandsversionssträng, antas modulen utan förhandsversionssträngen vara den produktionsklara versionen och sorteras som en större version än förhandsversionsversionen (som innehåller förhandsversionssträngen). Som ett exempel, när man jämför utgåvorna 2.5.0 och 2.5.0-beta, kommer 2.5.0-versionen att betraktas som den större av de två.
När du publicerar till PowerShell-galleriet måste som standard den version av modulen som publiceras ha en större version än någon tidigare publicerad version som finns i PowerShell-galleriet.
Hitta och hämta förhandsversionspaket med PowerShellGet-kommandon
Att hantera förhandsversionspaket med hjälp av PowerShellGet Find-Module, Install-Module, Update-Moduleoch Save-Module kommandon kräver att du lägger till -AllowPrerelease flaggan. Om -AllowPrerelease anges inkluderas förhandsversionspaket om de finns. Om -AllowPrerelease flagga inte anges visas inte förhandsversionspaket.
De enda undantagen från detta i PowerShellGet-modulkommandona är Get-InstalledModule och vissa fall med Uninstall-Module.
- Get-InstalledModule kommer alltid automatiskt att visa förhandsversionsinformationen i versionssträngen för moduler.
- Uninstall-Module kommer som standard att avinstallera den senaste versionen av en modul, om ingen version har angetts. Det beteendet har inte förändrats. Men om en förhandsversion anges med hjälp av -RequiredVersion krävs -AllowPrerelease.
Examples
Anta att PowerShell-galleriet har TestPackage-modulversionerna 1.8.0 och 1.9.0-alpha. Om -AllowPrerelease inget anges returneras endast version 1.8.0.
find-module TestPackage
Version Name Repository Description
------- ---- ---------- -----------
1.8.0 TestPackage PSGallery Package used to validate changes to the PowerShe...
find-module TestPackage -AllowPrerelease
Version Name Repository Description
------- ---- ---------- -----------
1.9.0-alpha TestPackage PSGallery Package used to validate changes to the PowerShe...
Om du vill installera en förhandsversion anger du alltid -AllowPrerelease. Det räcker inte att ange en förhandsversionssträng.
Install-module TestPackage -RequiredVersion 1.9.0-alpha
PackageManagement\Find-Package : No match was found for the specified search criteria and module name 'TestPackage'.
Try Get-PSRepository to see all available registered module repositories.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.6.0\PSModule.psm1:1455 char:3
+ PackageManagement\Find-Package @PSBoundParameters | Microsoft ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Microsoft.Power...ets.FindPackage:FindPackage) [Find-Package], Exception
+ FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.FindPackage
Föregående kommando misslyckades eftersom -AllowPrerelease inte har angetts. Att lägga till -AllowPrerelease kommer att resultera i framgång.
Install-module TestPackage -RequiredVersion 1.9.0-alpha -AllowPrerelease
Get-InstalledModule TestPackage
Version Name Repository Description
------- ---- ---------- -----------
1.9.0-alpha TestPackage PSGallery Package used to validate changes to the PowerShe...
Sida-vid-sida-installation av versioner av en modul som endast skiljer sig åt på grund av den angivna förhandsversionen stöds inte. När du installerar en modul med PowerShellGet installeras olika versioner av samma modul sida vid sida genom att skapa ett mappnamn med hjälp av ModuleVersion. ModuleVersion, utan förhandsversionssträngen, används för mappnamnet. Om en användare installerar MyModule version 2.5.0-alpha installeras den i mappen MyModule\2.5.0 . Om användaren sedan installerar 2.5.0-beta kommer 2.5.0-beta-versionen att skriva över innehållet i mappen MyModule\2.5.0. En fördel med den här metoden är att det inte finns något behov av att avinstallera förhandsversionen när du har installerat den produktionsklara versionen. Exemplet nedan visar vad du kan förvänta dig:
C:\windows\system32> Get-InstalledModule TestPackage -AllVersions
Version Name Repository Description
------- ---- ---------- -----------
1.9.0-alpha TestPackage PSGallery Package used to validate changes to the PowerShe...
1.8.0 TestPackage PSGallery Package used to validate changes to the PowerShe...
1.1.3.2 TestPackage PSGallery Package used to validate changes to the PowerShe...
C:\windows\system32> find-module TestPackage -AllowPrerelease
Version Name Repository Description
------- ---- ---------- -----------
1.9.0-beta TestPackage PSGallery Package used to validate changes to the PowerShe...
C:\windows\system32> Update-Module TestPackage -AllowPrerelease
C:\windows\system32> Get-InstalledModule TestPackage -AllVersions
Version Name Repository Description
------- ---- ---------- -----------
1.9.0-beta TestPackage PSGallery Package used to validate changes to the PowerShe...
1.8.0 TestPackage PSGallery Package used to validate changes to the PowerShe...
1.1.3.2 TestPackage PSGallery Package used to validate changes to the PowerShe...
Uninstall-Module tar bort den senaste versionen av en modul när -RequiredVersion inte medföljer. Om -RequiredVersion anges och är en förhandsversion måste -AllowPrerelease läggas till i kommandot.
C:\windows\system32> Get-InstalledModule TestPackage -AllVersions
Version Name Repository Description
------- ---- ---------- -----------
2.0.0-alpha1 TestPackage PSGallery Package used to validate changes to the PowerShe...
1.9.0-beta TestPackage PSGallery Package used to validate changes to the PowerShe...
1.8.0 TestPackage PSGallery Package used to validate changes to the PowerShe...
1.1.3.2 TestPackage PSGallery Package used to validate changes to the PowerShe...
C:\windows\system32> Uninstall-Module TestPackage -RequiredVersion 1.9.0-beta
Uninstall-Module : The '-AllowPrerelease' parameter must be specified when using the Prerelease string in
MinimumVersion, MaximumVersion, or RequiredVersion.
At line:1 char:1
+ Uninstall-Module TestPackage -RequiredVersion 1.9.0-beta
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Uninstall-Module], ArgumentException
+ FullyQualifiedErrorId : AllowPrereleaseRequiredToUsePrereleaseStringInVersion,Uninstall-Module
C:\windows\system32> Uninstall-Module TestPackage -RequiredVersion 1.9.0-beta -AllowPrerelease
C:\windows\system32> Get-InstalledModule TestPackage -AllVersions
Version Name Repository Description
------- ---- ---------- -----------
2.0.0-alpha1 TestPackage PSGallery Package used to validate changes to the PowerShe...
1.8.0 TestPackage PSGallery Package used to validate changes to the PowerShe...
1.1.3.2 TestPackage PSGallery Package used to validate changes to the PowerShe...
C:\windows\system32> Uninstall-Module TestPackage
C:\windows\system32> Get-InstalledModule TestPackage -AllVersions
Version Name Repository Description
------- ---- ---------- -----------
1.8.0 TestPackage PSGallery Package used to validate changes to the PowerShe...
1.1.3.2 TestPackage PSGallery Package used to validate changes to the PowerShe...
Mer information
PowerShell Gallery