Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A partir da versão 1.6.0, o PowerShellGet e a Galeria do PowerShell fornecem suporte para marcar versões superiores a 1.0.0 como um pré-lançamento. Antes desse recurso, os pacotes de pré-lançamento eram limitados a ter uma versão começando com 0. O objetivo desses recursos é fornecer maior suporte para a convenção de controle de versão do SemVer v1.0.0 sem interromper a compatibilidade com versões anteriores do PowerShell 3 e superior ou versões existentes do PowerShellGet. Este tópico se concentra nos recursos específicos do script. Os recursos equivalentes para módulos estão no tópico Versões de módulo de pré-lançamento . Usando esses recursos, os editores podem identificar um script como versão 2.5.0-alpha e, posteriormente, lançar uma versão 2.5.0 pronta para produção que substitui a versão de pré-lançamento.
Em um alto nível, os recursos do script de pré-lançamento incluem:
- Adicionando um sufixo PrereleaseString à cadeia de caracteres de versão no manifesto do script. Quando os scripts são publicados na Galeria do PowerShell, esses dados são extraídos do manifesto e usados para identificar pacotes de pré-lançamento.
- A aquisição de pacotes de pré-lançamento requer a adição de -AllowPrerelease sinalizador aos comandos Find-Script, Install-Script, Update-Script e Save-Script do PowerShellGet. Se o sinalizador não for especificado, os pacotes de pré-lançamento não serão mostrados.
- As versões de script exibidas por Find-Script, Get-InstalledScript e na Galeria do PowerShell serão exibidas com o PrereleaseString, como em 2.5.0-alpha.
Os detalhes dos recursos estão incluídos abaixo.
Identificando uma versão de script como um pré-lançamento
O suporte do PowerShellGet para versões de pré-lançamento é mais fácil para scripts do que para módulos. O controle de versão de script só tem suporte do PowerShellGet, portanto, não há problemas de compatibilidade causados pela adição da cadeia de caracteres de pré-lançamento. Para identificar um script na Galeria do PowerShell como um pré-lançamento, adicione um sufixo de pré-lançamento a uma cadeia de caracteres de versão formatada corretamente nos metadados do script.
Uma seção de exemplo de um manifesto de script com uma versão de pré-lançamento seria semelhante à seguinte:
<#PSScriptInfo
.VERSION 3.2.1-alpha12
.GUID
...
#>
Para usar um sufixo de pré-lançamento, a cadeia de caracteres de versão deve atender aos seguintes requisitos:
- Um sufixo de pré-lançamento só pode ser especificado quando a versão tiver 3 segmentos para Major.Minor.Build. Isso se alinha com o SemVer v1.0.0
- O sufixo de pré-lançamento é uma string que começa com um hífen e pode conter alfanuméricos ASCII [0-9A-Za-z-]
- Somente strings de pré-lançamento do SemVer v1.0.0 são suportadas no momento, portanto, o sufixo de pré-lançamento não deve conter período ou + [.+], que são permitidos no SemVer 2.0
- Exemplos de strings PrereleaseString suportadas são: -alpha, -alpha1, -BETA, -update20171020
Impacto do controle de versão de pré-lançamento na ordem de classificação e nas pastas de instalação
Classifique as alterações de ordem ao usar uma versão de pré-lançamento, o que é importante ao publicar na Galeria do PowerShell e ao instalar scripts usando comandos PowerShellGet. Se existirem duas versões de scripts com o número de versão, a ordem de classificação será baseada na parte da cadeia de caracteres após o hífen. Portanto, a versão 2.5.0-alpha é menor que 2.5.0-beta, que é menor que 2.5.0-gamma. Se dois scripts tiverem o mesmo número de versão e apenas um tiver um PrereleaseString, o script sem o sufixo de pré-lançamento será considerado a versão pronta para produção e será classificado como uma versão maior do que a versão de pré-lançamento. Por exemplo, ao comparar as versões 2.5.0 e 2.5.0-beta, a versão 2.5.0 será considerada a maior das duas.
Ao publicar na Galeria do PowerShell, por padrão, a versão do script que está sendo publicada deve ter uma versão maior do que qualquer versão publicada anteriormente que esteja na Galeria do PowerShell. Um editor pode atualizar a versão 2.5.0-alpha com 2.5.0-beta ou com 2.5.0 (sem sufixo de pré-lançamento).
Localizando e adquirindo pacotes de pré-lançamento usando comandos PowerShellGet
Lidar com pacotes de pré-lançamento usando os comandos PowerShellGet Find-Script, Install-Script, Update-Script e Save-Script requer a adição do sinalizador -AllowPrerelease. Se -AllowPrerelease for especificado, os pacotes de pré-lançamento serão incluídos se estiverem presentes. Se -AllowPrerelease sinalizador não for especificado, os pacotes de pré-lançamento não serão mostrados.
As únicas exceções a isso nos comandos de script Get do PowerShell são Get-InstalledScript e alguns casos com Uninstall-Script.
- Get-InstalledScript sempre mostrará automaticamente as informações de pré-lançamento na cadeia de caracteres de versão, se estiver presente.
- Uninstall-Script desinstalará por padrão a versão mais recente de um script, se nenhuma versão for especificada. Esse comportamento não mudou. No entanto, se uma versão de pré-lançamento for especificada usando
-RequiredVersion,-AllowPrereleaseserá necessário.
Exemplos
# 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
Uninstall-Script removerá a versão atual de um script quando -RequiredVersion não for fornecida. Se -RequiredVersion for especificado e for um pré-lançamento, -AllowPrerelease deverá ser adicionado ao comando.
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
Mais detalhes
PowerShell Gallery