Voorlopige versies van ScriptsPrerelease Versions of Scripts

Vanaf versie 1.6.0 bieden PowerShellGet en de PowerShell-galerie ondersteuning voor versies die groter zijn dan 1.0.0 als een prerelease-tagging.Starting with version 1.6.0, PowerShellGet and the PowerShell Gallery provide support for tagging versions greater than 1.0.0 as a prerelease. Voorafgaand aan deze functie zijn prerelease-items beperkt tot een versie die begint met 0 hebben.Prior to this feature, prerelease items were limited to having a version beginning with 0. Het doel van deze functies is het bieden meer ondersteuning voor SemVer v1.0.0 versioning aanroepconventie zonder te verbreken achterwaartse compatibiliteit met PowerShell versies 3 en hoger of bestaande versies van PowerShellGet.The goal of these features is to provide greater support for SemVer v1.0.0 versioning convention without breaking backwards compatibility with PowerShell versions 3 and above, or existing versions of PowerShellGet. Dit onderwerp richt zich op de script-specifieke functies.This topic focuses on the script-specific features. De equivalente functies voor modules die zich in de Prerelease moduleversies onderwerp.The equivalent features for modules are in the Prerelease Module Versions topic. Deze functies gebruikt, kunnen uitgevers identificeren van een script als versie 2.5.0-alpha en later een versie gereed is voor productie 2.5.0 die de prerelease versie vervangt.Using these features, publishers can identify a script as version 2.5.0-alpha, and later release a production-ready version 2.5.0 that supersedes the prerelease version.

Op een hoog niveau: de functies van voorlopige scriptAt a high level, the prerelease script features include:

  • Een PrereleaseString achtervoegsel wordt toegevoegd aan de versiereeks in het manifest script.Adding a PrereleaseString suffix to the version string in the script manifest. Wanneer de scripts wordt gepubliceerd naar de PowerShell-galerie, is deze gegevens opgehaald uit het manifest en gebruikt om deze items te identificeren.When the scripts is published to the PowerShell Gallery, this data is extracted from the manifest, and used to identify prerelease items.
  • Ophalen van een prerelease-items vereist - AllowPrerelease vlag toe te voegen aan de PowerShellGet opdrachten Find-Script installatiescript-Script voor het bijwerken en opslaan-Script.Acquiring prerelease items requires adding -AllowPrerelease flag to the PowerShellGet commands Find-Script, Install-Script, Update-Script, and Save-Script. Als de vlag niet is opgegeven, wordt deze items niet worden weergegeven.If the flag is not specified, prerelease items will not be shown.
  • Script-versies weergegeven door Find-Script Get-InstalledScript en in de PowerShell-galerie weergegeven met de PrereleaseString, zoals in 2.5.0-alpha.Script versions displayed by Find-Script, Get-InstalledScript, and in the PowerShell Gallery will be displayed with the PrereleaseString, as in 2.5.0-alpha.

Hieronder vindt u details voor de functies.Details for the features are included below.

De versie van een script te identificeren als een voorlopige versieIdentifying a script version as a prerelease

Ondersteuning voor voorlopige versies PowerShellGet nog gemakkelijker voor scripts modules.PowerShellGet support for prerelease versions is easier for scripts than modules. Script versiebeheer wordt alleen ondersteund door PowerShellGet, dus er geen compatibiliteitsproblemen veroorzaakt zijn door de prerelease-tekenreeks toe te voegen.Script versioning is only supported by PowerShellGet, so there are no compatibility issues caused by adding the prerelease string. Als u wilt een script in de PowerShell-galerie als een voorlopige versie hebt geïdentificeerd, moet u een prerelease achtervoegsel toevoegen aan een correct opgemaakt versietekenreeks in de script-metagegevens.To identify a script in the PowerShell Gallery as a prerelease, add a prerelease suffix to a properly-formatted version string in the script metadata.

Een voorbeeld van een script manifest met een prerelease-versie in deze sectie eruit als het volgende:An example section of a script manifest with a prerelease version would look like the following:

<#PSScriptInfo

.VERSION 3.2.1-alpha12

.GUID 

...

#>

De tekenreeks moet voldoen aan de volgende vereisten voor het gebruik van een prerelease-achtervoegsel:To use a prerelease suffix, the version string must meet the following requirements:

  • Het achtervoegsel van een prerelease kan alleen worden opgegeven als de versie 3 segmenten voor Major.Minor.Build.A prerelease suffix may only be specified when the Version is 3 segments for Major.Minor.Build. Dit wordt uitgelijnd met SemVer v1.0.0This aligns with SemVer v1.0.0
  • Het achtervoegsel voor de prerelease is een tekenreeks zijn die begint met een afbreekstreepje en mag bestaan uit ASCII-letters en cijfers [0-9A-Za - z-]The prerelease suffix is a string which begins with a hyphen, and may contain ASCII alphanumerics [0-9A-Za-z-]
  • Alleen SemVer v1.0.0 prerelease tekenreeksen worden ondersteund op dit moment is het achtervoegsel voor de prerelease moet niet beide punt bevatten of + [. +], die zijn toegestaan in SemVer 2.0Only SemVer v1.0.0 prerelease strings are supported at this time, so the prerelease suffix must not contain either period or + [.+], which are allowed in SemVer 2.0
  • Voorbeelden van ondersteunde PrereleaseString tekenreeksen zijn:-alpha, -a1,-bèta, -update20171020Examples of supported PrereleaseString strings are: -alpha, -alpha1, -BETA, -update20171020

Voorlopige versies gevolgen voor de mappen en de installatie sorterenPrerelease versioning impact on sort order and installation folders

Sorteervolgorde verandert wanneer u een prerelease-versie, wat belangrijk bij het publiceren van de PowerShell-galerie, en scripts met PowerShellGet opdrachten installeren.Sort order changes when using a prerelease version, which is important when publishing to the PowerShell Gallery, and when installing scripts using PowerShellGet commands. Als twee versies met het versienummer scripts bestaat, de sorteervolgorde is gebaseerd op het volgende op het afbreekstreepje tekenreeksdeel.If two scripts versions with the version number exist, the sort order is based on the string portion following the hyphen. Dus is versie 2.5.0-alpha kleiner dan 2.5.0-beta, dat is minder dan 2.5.0-gamma.So, version 2.5.0-alpha is less than 2.5.0-beta, which is less than 2.5.0-gamma. Als twee scripts hetzelfde versienummer hebben en slechts één een PrereleaseString, het script heeft zonder de prerelease achtervoegsel wordt ervan uitgegaan dat de versie gereed is voor productie en worden gesorteerd als een hogere versie dan de voorlopige versie Versie.If two scripts have the same version number, and only one has a PrereleaseString, the script without the prerelease suffix is assumed to be the production-ready version and will be sorted as a greater version than the prerelease version. Als u bijvoorbeeld bij het vergelijken van releases 2.5.0 en 2.5.0-beta, de 2.5.0 versie wordt beschouwd als de grootste van de twee.As an example, when comparing releases 2.5.0 and 2.5.0-beta, the 2.5.0 version will be considered the greater of the two.

Bij het publiceren van de PowerShell-galerie, moet de versie van het script wordt gepubliceerd hebben standaard een hogere versie dan eventuele eerder gepubliceerde versie die in de PowerShell-galerie.When publishing to the PowerShell Gallery, by default the version of the script being published must have a greater version than any previously-published version that is in the PowerShell Gallery. Een uitgever kan versie 2.5.0-alpha bijwerken 2.5.0-beta of met 2.5.0 (met geen prerelease achtervoegsel).A publisher may update version 2.5.0-alpha with 2.5.0-beta, or with 2.5.0 (with no prerelease suffix).

Zoeken en ophalen van een prerelease-items met PowerShellGet opdrachtenFinding and acquiring prerelease items using PowerShellGet commands

Omgaan met prerelease items met PowerShellGet Find-Script, Script voor installatie, Update-Script, en opslaan scriptopdrachten vereist de vlag - AllowPrerelease toe te voegen.Dealing with prerelease items using PowerShellGet Find-Script, Install-Script, Update-Script, and Save-Script commands requires adding the -AllowPrerelease flag. Als - AllowPrerelease is opgegeven, wordt deze prerelease-items worden opgenomen als deze aanwezig zijn.If -AllowPrerelease is specified, prerelease items will be included if they are present. Als de vlag - AllowPrerelease niet is opgegeven, wordt deze items niet weergegeven.If -AllowPrerelease flag is not specified, prerelease items will not be shown.

De enige uitzonderingen op dit in de scriptopdrachten PowerShellGet zijn Get-InstalledScript en in sommige gevallen met Uninstall-Script.The only exceptions to this in the PowerShellGet script commands are Get-InstalledScript, and some cases with Uninstall-Script.

  • Get-InstalledScript weergegeven altijd automatisch de prerelease-informatie in de versietekenreeks indien aanwezig.Get-InstalledScript always will automatically show the prerelease information in the version string if it is present.
  • Uninstall-Script wordt standaard verwijderd de meest recente versie van een script als geen versie is opgegeven.Uninstall-Script will by default uninstall the most recent version of a script, if no version is specified. Dit gedrag is niet gewijzigd.That behavior has not changed. Echter, als een prerelease-versie wordt opgegeven met - RequiredVersion, - AllowPrerelease is vereist.However, if a prerelease version is specified using -RequiredVersion, -AllowPrerelease will be required.

VoorbeeldenExamples

# Assume the PowerShell Gallery has TestPackage versions 1.8.0 and 1.9.0-alpha. If -AllowPrerelease is not specified, only version 1.8.0 will be returned.
C:\windows\system32> Find-Script TestPackage 

Version        Name                                Repository           Description
-------        ----                                ----------           -----------
1.8.0          TestPackage                         PSGallery            Package used to validate changes to the PowerShe...

C:\windows\system32> Find-Script TestPackage -AllowPrerelease

Version        Name                                Repository           Description
-------        ----                                ----------           -----------
1.9.0-alpha    TestPackage                         PSGallery            Package used to validate changes to PowerShe...

# To install a prerelease, you must specify -AllowPrerelease. Specifying a prerelease version string is not sufficient. 

C:\windows\system32> Install-Script TestPackage -RequiredVersion 1.9.0-alpha
PackageManagement\Find-Package : No match was found for the specified search criteria and script name 'TestPackage'.
Try Get-PSRepository to see all available registered script 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], Exceptio
   n
    + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.FindPackage

# The previous command failed because -AllowPrerelease was not specified.
# Adding -AllowPrerelease will result in success.

C:\windows\system32> Install-Script TestPackage -RequiredVersion 1.9.0-alpha -AllowPrerelease
C:\windows\system32> Get-InstalledScript TestPackage

Version         Name                                Repository           Description
-------         ----                                ----------           -----------
1.9.0-alpha     TestPackage                         PSGallery            Package used to validate changes to PowerShe...

# Note that Get-InstalledScript shows the prerelease version. 
# If -RequiredVersion is not specified, all installed scripts will be displayed by Get-InstalledScript

Uninstall-Script wordt de huidige versie van een script verwijderen wanneer - RequiredVersion is niet opgegeven.Uninstall-Script will remove the current version of a script when -RequiredVersion is not supplied. -RequiredVersion is opgegeven, en een voorlopige versie, moet - AllowPrerelease worden toegevoegd aan de opdracht.If -RequiredVersion is specified, and is a prerelease, -AllowPrerelease must be added to the command.

C:\windows\system32> Get-InstalledScript TestPackage

Version         Name                                Repository           Description
-------         ----                                ----------           -----------
1.9.0-alpha     TestPackage                         PSGallery            Package used to validate changes to PowerShe...

C:\windows\system32> Uninstall-Script TestPackage -RequiredVersion 1.9.0-alpha
Uninstall-Script: The '-AllowPrerelease' parameter must be specified when using the Prerelease string in
MinimumVersion, MaximumVersion, or RequiredVersion.
At line:1 char:1
+ Unnstall-Script TestPackage -RequiredVersion 1.9.0-beta
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Uninstall-Script], ArgumentException
    + FullyQualifiedErrorId : AllowPrereleaseRequiredToUsePrereleaseStringInVersion,Uninnstall-script


C:\windows\system32> Uninstall-Script TestPackage -RequiredVersion 1.9.0-alpha -AllowPrerelease
# Since script versions are not installed side-by-side, the above could be simply "Uninstall-Script TestPackage"

C:\windows\system32> Get-Installedscript TestPackage
PackageManagement\Get-Package : No match was found for the specified search criteria and script names 'testpackage'.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.5.0.0\PSModule.psm1:4088 char:9
+         PackageManagement\Get-Package @PSBoundParameters | Microsoft. ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power...lets.GetPackage:GetPackage) [Get-Package], Exception
    + FullyQualifiedErrorId : NoMatchFound,Microsoft.PowerShell.PackageManagement.Cmdlets.GetPackage

meer informatieMore details

Prerelease-moduleversiesPrerelease Module Versions

Zoeken naar scriptFind-script

Script voor installatieInstall-script

Opslaan-scriptSave-script

Script voor het bijwerkenUpdate-script

Get-InstalledscriptGet-Installedscript

UnInstall-scriptUnInstall-script