Prerelease-moduleversiesPrerelease Module Versions

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 module-specifieke functies.This topic focuses on the module-specific features. De equivalente functies voor scripts zijn in de Prerelease-versies van Scripts onderwerp.The equivalent features for scripts are in the Prerelease Versions of Scripts topic. Deze functies gebruikt, kunnen uitgevers identificeren module of 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 module or 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 prerelease modulefunctiesAt a high level, the prerelease module features include:

  • Een Prerelease-reeks toevoegen aan de sectie PSData van de module-manifest verwijst naar de module als een prerelease-versie.Adding a Prerelease string to the PSData section of the module manifest identifies the module as a prerelease version. Wanneer de module wordt gepubliceerd naar de PowerShell-galerie, is deze gegevens opgehaald uit het manifest en gebruikt om deze items te identificeren.When the module 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-Module installeren-Module, Update-Module en opslaan-Module.Acquiring prerelease items requires adding -AllowPrerelease flag to the PowerShellGet commands Find-Module, Install-Module, Update-Module, and Save-Module. Als de vlag niet is opgegeven, wordt deze items niet worden weergegeven.If the flag is not specified, prerelease items will not be shown.
  • Moduleversies weergegeven door Find-Module, Get-InstalledModule en in de galerie met PowerShell wordt weergegeven als één tekenreeks met de Prerelease tekenreeks toegevoegd, zoals in 2.5.0-alpha.Module versions displayed by Find-Module, Get-InstalledModule, and in the PowerShell Gallery will be displayed as a single string with the Prerelease string appended, as in 2.5.0-alpha.

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

Deze wijzigingen hebben geen invloed op de ondersteuning van de module-versie die is ingebouwd in PowerShell en compatibel zijn met PowerShell 3.0 en 4.0 5.These changes do not affect the module version support that is built into PowerShell, and are compatible with PowerShell 3.0, 4.0, and 5.

Een moduleversie identificeren als een voorlopige versieIdentifying a module version as a prerelease

Ondersteuning voor voorlopige versies PowerShellGet vereist het gebruik van twee velden in de Module-Manifest:PowerShellGet support for prerelease versions requires the use of two fields within the Module Manifest:

  • De ModuleVersion opgenomen in het manifest van de module moet een versie 3-onderdeel als een prerelease-versie wordt gebruikt en aan de bestaande PowerShell versiebeheer voldoen moet.The ModuleVersion included in the module manifest must be a 3-part version if a prerelease version is used, and must comply with existing PowerShell versioning. De indeling van versie zou A.B.C, waarbij A, B en C alle gehele getallen zijn zijn.The version format would be A.B.C, where A, B, and C are all integers.
  • De Prerelease tekenreeks is opgegeven in het manifest module in de sectie PSData van PrivateData.The Prerelease string is specified in the module manifest, in the PSData section of PrivateData. Gedetailleerde vereisten voor de Prerelease tekenreeks zijn hieronder.Detailed requirements on the Prerelease string are below.

Een voorbeeld van een module-manifest dat definieert een module als een voorlopige versie in deze sectie eruit als het volgende:An example section of a module manifest that defines a module as a prerelease would look like the following:

@{
    ModuleVersion = '2.5.0'
    #---
    PrivateData = @{
        PSData = @{
            Prerelease = 'alpha'
        }
    }
}

De gedetailleerde vereisten voor voorlopige tekenreeks zijn:The detailed requirements for Prerelease string are:

  • Deze tekenreeks kan alleen worden opgegeven wanneer de ModuleVersion 3 segmenten voor Major.Minor.Build.Prerelease string may only be specified when the ModuleVersion is 3 segments for Major.Minor.Build. Dit wordt uitgelijnd met SemVer v1.0.0.This aligns with SemVer v1.0.0.
  • Een afbreekstreepje is het scheidingsteken tussen het Build-nummer en de Prerelease tekenreeks.A hyphen is the delimiter between the Build number and the Prerelease string. Een afbreekstreepje kan worden opgenomen in de Prerelease tekenreeks als het eerste teken alleen.A hyphen may be included in the Prerelease string as the first character, only.
  • De Prerelease tekenreeks mag alleen ASCII-letters en cijfers bevatten [0-9A-Za - z-].The Prerelease string may contain only ASCII alphanumerics [0-9A-Za-z-]. Het is een best practice om te beginnen met de voorlopige versie tekenreeks met een alfanumerieke tekens, omdat deze gemakkelijker te identificeren dat dit een prerelease-versie is bij het scannen van een lijst met items.It is a best practice to begin the Prerelease string with an alpha character, as it will be easier to identify that this is a prerelease version when scanning a list of items.
  • Alleen SemVer v1.0.0 prerelease tekenreeksen worden ondersteund op dit moment.Only SemVer v1.0.0 prerelease strings are supported at this time. Prerelease tekenreeks moet niet beide punt bevatten of + [. +], die zijn toegestaan in SemVer 2.0.Prerelease string must not contain either period or + [.+], which are allowed in SemVer 2.0.
  • Voorbeelden van ondersteunde Prerelease tekenreeks zijn:-alpha, -a1,-bèta, -update20171020Examples of supported Prerelease string 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 modules met behulp van PowerShellGet opdrachten installeren.Sort order changes when using a prerelease version, which is important when publishing to the PowerShell Gallery, and when installing modules using PowerShellGet commands. Als de Prerelease tekenreeks is opgegeven voor twee modules, wordt de sorteervolgorde is gebaseerd op het volgende op het afbreekstreepje tekenreeksdeel.If the Prerelease string is specified for two modules, 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 modules de dezelfde ModuleVersion hebben en slechts één een Prerelease tekenreeks heeft, de module zonder de Prerelease tekenreeks wordt ervan uitgegaan dat de versie gereed is voor productie en worden gesorteerd als een hogere versie dan de prerelease versie (waaronder de voorlopige versie tekenreeks).If two modules have the same ModuleVersion, and only one has a Prerelease string, the module without the Prerelease string is assumed to be the production-ready version and will be sorted as a greater version than the prerelease version (which includes the Prerelease string). 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 de module 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 module being published must have a greater version than any previously-published version that is in the PowerShell Gallery.

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

Omgaan met prerelease items met PowerShellGet Find-Module, installatie-Module, Update-Module, en de opdrachten opslaan-Module vereist de vlag - AllowPrerelease toe te voegen.Dealing with prerelease items using PowerShellGet Find-Module, Install-Module, Update-Module, and Save-Module 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 module PowerShellGet opdrachten zijn Get-InstalledModule en in sommige gevallen met Uninstall-Module.The only exceptions to this in the PowerShellGet module commands are Get-InstalledModule, and some cases with Uninstall-Module.

  • Get-InstalledModule weergegeven altijd automatisch de prerelease-informatie in de tekenreeks voor modules.Get-InstalledModule always will automatically show the prerelease information in the version string for modules.
  • Verwijderen van de Module standaard verwijdert de meest recente versie van een module als geen versie is opgegeven.Uninstall-Module will by default uninstall the most recent version of a module, 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 module 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-module TestPackage 

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

C:\windows\system32> find-module TestPackage -AllowPrerelease

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

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

C:\windows\system32> 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], 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-module TestPackage -RequiredVersion 1.9.0-alpha -AllowPrerelease
C:\windows\system32> Get-InstalledModule TestPackage

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

Side-by-side-installatie van versies van een module die alleen als gevolg van de voorlopige versie opgegeven verschillen, wordt niet ondersteund.Side-by-side installation of versions of a module that differ only due to the prerelease specified is not supported. Als u een module met behulp van PowerShellGet installeert, zijn verschillende versies van dezelfde module geïnstalleerde side-by-side door het maken van de naam van een map met de ModuleVersion.When installing a module using PowerShellGet, different versions of the same module are installed side-by-side by creating a folder name using the ModuleVersion. De ModuleVersion, zonder de prerelease tekenreeks wordt gebruikt voor naam van de map.The ModuleVersion, without the prerelease string, is used for the folder name. Als een gebruiker MyModule versie 2.5.0-alpha installeert, wordt deze naar de map MyModule\2.5.0 worden geïnstalleerd.If a user installs MyModule version 2.5.0-alpha, it will be installed to the MyModule\2.5.0 folder. Als de gebruiker vervolgens 2.5.0-beta installeert, de versie 2.5.0-beta wordt te veel schrijven de inhoud van de map MyModule\2.5.0.If the user then installs 2.5.0-beta, the 2.5.0-beta version will over-write the contents of the folder MyModule\2.5.0. Een voordeel hiervan is dat er hoeft te verwijderen de prerelease versie na de installatie van de versie gereed is voor productie.One advantage to this approach is that there is no need to un-install the prerelease version after installing the production-ready version. Het volgende voorbeeld ziet u wat ze kunnen verwachten:The example below shows what to expect:

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...

Verwijderen-Module kan de meest recente versie van een module wordt verwijderd wanneer - RequiredVersion wordt niet meegeleverd.Uninstall-Module will remove the latest version of a module 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-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
+ Unnstall-Module TestPackage -RequiredVersion 1.9.0-beta
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Uninstall-Module], ArgumentException
    + FullyQualifiedErrorId : AllowPrereleaseRequiredToUsePrereleaseStringInVersion,Uninnstall-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...

meer informatieMore details

Script prerelease-versiesPrerelease Script Versions

Zoek-ModuleFind-Module

Installatie-ModuleInstall-Module

Opslaan-ModuleSave-Module

Update-ModuleUpdate-Module

Get-InstalledModuleGet-InstalledModule

Verwijderen-ModuleUnInstall-Module