Parancsfájlok előzetes verzióiPrerelease versions of scripts

A 1.6.0 verziótól kezdődően a PowerShellGet és a PowerShell-galéria támogatást biztosít a 1.0.0-nál nagyobb verziók előzetes kiadásként való címkézéséhez.Starting with version 1.6.0, PowerShellGet and the PowerShell Gallery provide support for tagging versions greater than 1.0.0 as a prerelease. A szolgáltatás előtt az előzetes verziójú csomagok a 0 értékkel kezdődő verzióra korlátozódnak.Prior to this feature, prerelease packages were limited to having a version beginning with 0. Ezeknek a funkcióknak a célja, hogy nagyobb támogatást nyújtson a SemVer v 1.0.0 -verziószámozási konvenciónak a PowerShell 3. vagy újabb verziójával, vagy a PowerShellGet meglévő verzióival való visszamenőleges kompatibilitás megszakadása nélkül.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. Ez a témakör a parancsfájl-specifikus funkciókra összpontosít.This topic focuses on the script-specific features. A modulok egyenértékű funkciói az előzetes verziójú modul-verziók témakörben találhatók.The equivalent features for modules are in the Prerelease Module Versions topic. Ezekkel a szolgáltatásokkal a közzétevők a 2.5.0-Alpha verzióban azonosíthatják a parancsfájlokat, és később olyan, éles használatra kész verziójú 2.5.0-verziót bocsátanak ki, amely felülírja az előzetes verziót.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.

Magas szinten az előzetes parancsfájl funkciói a következők:At a high level, the prerelease script features include:

  • PrereleaseString utótag hozzáadása a szkript jegyzékfájljának Version karakterláncához.Adding a PrereleaseString suffix to the version string in the script manifest. Ha a parancsfájlok közzé vannak téve a PowerShell-galéria, ezeket az adatok kinyerik a jegyzékfájlból, és az előzetes csomagok azonosítására szolgálnak.When the scripts is published to the PowerShell Gallery, this data is extracted from the manifest, and used to identify prerelease packages.
  • Az előzetes kiadású csomagok beszerzéséhez hozzá kell adni a-AllowPrerelease jelzőt a Find-script, a install-script, a Update-script és a Save-script PowerShellGet parancsaihoz.Acquiring prerelease packages requires adding -AllowPrerelease flag to the PowerShellGet commands Find-Script, Install-Script, Update-Script, and Save-Script. Ha a jelző nincs megadva, a rendszer nem jeleníti meg az előzetes csomagokat.If the flag is not specified, prerelease packages will not be shown.
  • A Find-script, a Get-InstalledScript és a PowerShell-galéria által megjelenített parancsfájl-verziók a PrereleaseString, a 2.5.0-Alpha-ben jelennek meg.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.

A funkciók részleteit alább találja.Details for the features are included below.

Parancsfájl verziójának azonosítása előzetes kiadáskéntIdentifying a script version as a prerelease

Az előzetes verziók PowerShellGet-támogatása egyszerűbb a parancsfájloknál, mint a modulok.PowerShellGet support for prerelease versions is easier for scripts than modules. A parancsfájlok verziószámozását csak a PowerShellGet támogatja, így az előzetes verziójú karakterlánc hozzáadásával nem okoz kompatibilitási problémákat.Script versioning is only supported by PowerShellGet, so there are no compatibility issues caused by adding the prerelease string. Ha egy parancsfájlt előzetes kiadásként szeretne azonosítani a PowerShell-galériaban, adjon hozzá egy előkiadási utótagot egy megfelelően formázott Version karakterlánchoz a szkript metaadataiban.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.

Az előzetes verzióval rendelkező script manifest egy példás szakasza a következőhöz hasonlóan néz ki:An example section of a script manifest with a prerelease version would look like the following:

<#PSScriptInfo

.VERSION 3.2.1-alpha12

.GUID

...

#>

A kiadási utótag használatához a verzió sztringnek meg kell felelnie a következő követelményeknek:To use a prerelease suffix, the version string must meet the following requirements:

  • Az előzetes verzió utótagja csak akkor adható meg, ha a verzió 3 szegmens a főverzió. alverzió. Build számára.A prerelease suffix may only be specified when the Version is 3 segments for Major.Minor.Build. Ez a SemVer v 1.0.0-hoz igazodikThis aligns with SemVer v1.0.0
  • Az előzetes verzió utótagja egy olyan karakterlánc, amely kötőjeltel kezdődik, és ASCII alfanumerikus karaktereket tartalmazhat [0-9A-za-z-]The prerelease suffix is a string which begins with a hyphen, and may contain ASCII alphanumerics [0-9A-Za-z-]
  • Jelenleg csak a SemVer v 1.0.0 előzetes verziójának karakterláncai támogatottak, ezért az előzetes verzió utótagja nem tartalmazhat olyan időszakot vagy + [. +] karaktert, amely engedélyezett a SemVer 2,0-ben.Only 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
  • Példák a támogatott PrereleaseString-karakterláncokra:-Alpha,-alfa1,-BETA,-update20171020Examples of supported PrereleaseString strings are: -alpha, -alpha1, -BETA, -update20171020

Az előzetes verzióra gyakorolt hatás a rendezési sorrendre és a telepítési mappákraPrerelease versioning impact on sort order and installation folders

Az előzetes verzió használatakor a rendezési sorrend megváltozik, ami fontos a PowerShell-galéria való közzétételkor, valamint a parancsfájlok PowerShellGet-parancsokkal történő telepítésekor.Sort order changes when using a prerelease version, which is important when publishing to the PowerShell Gallery, and when installing scripts using PowerShellGet commands. Ha két, verziószámmal rendelkező parancsfájl létezik, a rendezési sorrend a kötőjelet követő karakterlánc-részen alapul.If two scripts versions with the version number exist, the sort order is based on the string portion following the hyphen. Így a 2.5.0-Alpha verziója kevesebb, mint a 2.5.0-Beta, amely kisebb, mint a 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. Ha két parancsfájl ugyanazzal a verziószámmal rendelkezik, és csak egy PrereleaseString rendelkezik, a rendszer az előzetes verzió utótagja nélküli parancsfájlt feltételezi, hogy az éles használatra kész verzió lesz, és az előzetes verziónál újabb verzióként lesz sorba rendezve.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. Például a 2.5.0 és a 2.5.0-Beta verziók összehasonlításakor a 2.5.0-verzió a kettő nagyobb részét fogja tekinteni.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.

A PowerShell-galéria való közzétételkor alapértelmezés szerint a közzétett parancsfájl verziószámának nagyobbnak kell lennie, mint a PowerShell-galéria lévő korábban közzétett verziónak.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. A közzétevő frissítheti a 2.5.0-Alpha verziót a 2.5.0-Beta vagy a 2.5.0-vel (előzetes verziójú utótag nélkül).A publisher may update version 2.5.0-alpha with 2.5.0-beta, or with 2.5.0 (with no prerelease suffix).

Előzetes kiadású csomagok megkeresése és beszerzése a PowerShellGet parancsokkalFinding and acquiring prerelease packages using PowerShellGet commands

A PowerShellGet keresési parancsfájl, a install-script, a Update-script és a Save-script parancsok használatával történő előzetes csomagok kezeléséhez hozzá kell adni a-AllowPrerelease jelzőt.Dealing with prerelease packages using PowerShellGet Find-Script, Install-Script, Update-Script, and Save-Script commands requires adding the -AllowPrerelease flag. Ha a-AllowPrerelease meg van adva, a rendszer a kiadás előtti csomagokat is tartalmazza, ha vannak ilyenek.If -AllowPrerelease is specified, prerelease packages will be included if they are present. Ha a-AllowPrerelease jelző nincs megadva, a rendszer nem jeleníti meg az előzetes csomagokat.If -AllowPrerelease flag is not specified, prerelease packages will not be shown.

A PowerShellGet parancsfájl parancsaiban csak az alábbi kivételek jelennek meg: Get-InstalledScript, és néhány esetben az uninstall-script.The only exceptions to this in the PowerShellGet script commands are Get-InstalledScript, and some cases with Uninstall-Script.

  • A Get-InstalledScript mindig automatikusan megjeleníti az előzetes adatokat a verzió karakterláncában, ha van ilyen.Get-InstalledScript always will automatically show the prerelease information in the version string if it is present.
  • Eltávolítás – a parancsfájl alapértelmezés szerint eltávolítja a parancsfájl legújabb verzióját, ha nincs megadva verzió .Uninstall-Script will by default uninstall the most recent version of a script, if no version is specified. Ez a viselkedés nem változott.That behavior has not changed. Ha azonban a használatával -RequiredVersionvan megadva egy előzetes verzió, -AllowPrerelease akkor kötelező megadni.However, if a prerelease version is specified using -RequiredVersion, -AllowPrerelease will be required.

PéldákExamples

# 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], Exception
    + 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

Eltávolítás – a szkript eltávolítja a parancsfájl aktuális verzióját, ha a-RequiredVersion nincs megadva.Uninstall-Script will remove the current version of a script when -RequiredVersion is not supplied. Ha a-RequiredVersion meg van adva, és egy előzetes verzió, a-AllowPrerelease-et hozzá kell adni a parancshoz.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
+ Uninstall-Script TestPackage -RequiredVersion 1.9.0-beta
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Uninstall-Script], ArgumentException
    + FullyQualifiedErrorId : AllowPrereleaseRequiredToUsePrereleaseStringInVersion,Uninstall-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

További részletekMore details