Aracılığıyla paylaş


Yayın Öncesi Modül Sürümleri

Sürüm 1.6.0'dan başlayarak PowerShellGet ve PowerShell Galerisi, ön sürüm olarak 1.0.0'dan büyük sürümleri etiketleme desteği sağlar. Bu özellik öncesinde, yayın öncesi paketler 0 ile başlayan bir sürüme sahip olmakla sınırlıydı. Bu özelliklerin amacı, SemVer v1.0.0 sürüm oluşturma kuralı için PowerShell sürüm 3 ve üzeri veya mevcut PowerShellGet sürümleriyle geriye dönük uyumluluğu bozmadan daha fazla destek sağlamaktır. Bu konu, modüle özgü özelliklere odaklanır. Betikler için eşdeğer özellikler, Betiklerin Yayın Öncesi Sürümleri konusundadır. Yayımcılar bu özellikleri kullanarak bir modülü veya betiği sürüm 2.5.0-alfa olarak tanımlayabilir ve daha sonra yayın öncesi sürümün yerini alan üretime hazır 2.5.0 sürümünü yayınlayabilir.

Yüksek düzeyde yayın öncesi modül özellikleri şunlardır:

  • Modül bildiriminin PSData bölümüne ön sürüm dizesi eklendiğinde, modül ön sürüm olarak tanımlanır. Modül PowerShell Galerisi yayımlandığında, bu veriler bildirimden ayıklanır ve yayın öncesi paketleri tanımlamak için kullanılır.
  • Yayın öncesi paketlerin alınması için , , Update-ModuleInstall-Moduleve Save-ModulePowerShellGet komutlarına Find-Modulebayrak eklenmesi -AllowPrerelease gerekir. Bayrak belirtilmezse, yayın öncesi paketler gösterilmez.
  • PowerShell Galerisi , Get-InstalledModuleve tarafından Find-Modulegörüntülenen modül sürümleri, 2.5.0-alfa sürümünde olduğu gibi Ön sürüm dizesi eklenmiş olarak tek bir dize olarak görüntülenir.

Özelliklerin ayrıntıları aşağıda yer almaktadır.

Bu değişiklikler PowerShell'de yerleşik olan modül sürümü desteğini etkilemez ve PowerShell 3.0, 4.0 ve 5 ile uyumludur.

Modül sürümünü ön sürüm olarak tanımlama

Yayın öncesi sürümler için PowerShellGet desteği, Modül Bildirimi içinde iki alanın kullanılmasını gerektirir:

  • Modül bildiriminde yer alan ModuleVersion, yayın öncesi sürüm kullanılıyorsa 3 parçalı bir sürüm olmalıdır ve mevcut PowerShell sürümüne uygun olmalıdır. Sürüm biçimi A.B.C olur; burada A, B ve C tamsayılardır.
  • Ön sürüm dizesi, PrivateData'nın PSData bölümündeki modül bildiriminde belirtilir.

Ön sürüm dizesinde ayrıntılı gereksinimler aşağıdadır.

Modülü ön sürüm olarak tanımlayan bir modül bildiriminin örnek bölümü aşağıdakine benzer olacaktır:

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

Ön sürüm dizesi için ayrıntılı gereksinimler şunlardır:

  • Ön sürüm dizesi yalnızca ModuleVersion Major.Minor.Build için 3 segment olduğunda belirtilebilir. Bu, SemVer v1.0.0 ile hizalanır.
  • Kısa çizgi, Derleme numarası ile Yayın Öncesi dizesi arasındaki sınırlayıcıdır. Ön sürüm dizesine ilk karakter olarak kısa çizgi eklenebilir, yalnızca.
  • Ön sürüm dizesi yalnızca [0-9A-Za-z-] ASCII alfasayısallarını içerebilir. Paketlerin listesini tararken bunun yayın öncesi bir sürüm olduğunu belirlemek daha kolay olduğundan, Yayın Öncesi dizesini alfa karakteriyle başlatmak en iyi yöntemdir.
  • Şu anda yalnızca SemVer v1.0.0 yayın öncesi dizeleri desteklenmektedir. Ön sürüm dizesi, SemVer 2.0'da izin verilen nokta veya + [.+] içermemelidir .
  • Desteklenen Yayın Öncesi dize örnekleri şunlardır: -alpha, -alpha1, -BETA, -update20171020

Yayın öncesi sürüm oluşturmanın sıralama düzeni ve yükleme klasörleri üzerindeki etkisi

PowerShell Galerisi yayımlarken ve PowerShellGet komutlarını kullanarak modülleri yüklerken önemli olan ön sürüm kullanılırken sıralama düzeni değişir. Ön sürüm dizesi iki modül için belirtilirse, sıralama düzeni kısa çizgiden sonraki dize bölümünü temel alır. Bu nedenle, sürüm 2.5.0-alfa, 2.5.0-gama'dan küçük olan 2.5.0-beta'dan küçüktür. İki modülde aynı ModuleVersion varsa ve yalnızca birinin Yayın Öncesi dizesi varsa, Yayın Öncesi dizesi olmayan modülün üretime hazır sürüm olduğu varsayılır ve ön sürümden (Yayın Öncesi dizesini içeren) daha büyük bir sürüm olarak sıralanır. Örneğin, 2.5.0 ve 2.5.0-beta sürümleri karşılaştırılırken, 2.5.0 sürümü iki sürümden daha büyük olarak kabul edilir.

PowerShell Galerisi yayımlarken, yayımlanan modülün sürümü varsayılan olarak PowerShell Galerisi daha önce yayımlanmış olan sürümlerden daha büyük olmalıdır.

PowerShellGet komutlarını kullanarak yayın öncesi paketleri bulma ve alma

PowerShellGet Find-Module, Install-Module, Update-Module ve Save-Module komutlarını kullanarak yayın öncesi paketlerle ilgilenmek için -AllowPrerelease bayrağının eklenmesi gerekir. -AllowPrerelease belirtilirse, ön sürüm paketleri varsa eklenir. -AllowPrerelease bayrağı belirtilmezse, yayın öncesi paketler gösterilmez.

PowerShellGet modülü komutlarında bunun tek özel durumları Get-InstalledModule ve Uninstall-Module ile ilgili bazı durumlardır.

  • Get-InstalledModule modüller için sürüm dizesindeki yayın öncesi bilgileri her zaman otomatik olarak gösterir.
  • Uninstall-Module, sürüm belirtilmezse varsayılan olarak modülün en son sürümünü kaldırır. Bu davranış değişmedi. Ancak, -RequiredVersion kullanılarak ön sürüm belirtilirse, -AllowPrerelease gerekir.

Örnekler

PowerShell Galerisi TestPackage modülünün 1.8.0 ve 1.9.0-alfa sürümlerine sahip olduğunu varsayalım. Belirtilmezse -AllowPrerelease , yalnızca sürüm 1.8.0 döndürülür.

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

Ön sürümü yüklemek için her zaman -AllowPrerelease belirtin. Yayın öncesi sürüm dizesi belirtmek yeterli değildir.

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

-AllowPrerelease belirtilmediğinden önceki komut başarısız oldu. Ekleme -AllowPrerelease başarılı olur.

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

Modülün yalnızca belirtilen ön sürümden farklı sürümlerinin yan yana yüklenmesi desteklenmez. PowerShellGet kullanarak bir modülü yüklerken, ModuleVersion kullanılarak bir klasör adı oluşturularak aynı modülün farklı sürümleri yan yana yüklenir. ModuleVersion, yayın öncesi dizesi olmadan klasör adı için kullanılır. Kullanıcı MyModule sürüm 2.5.0-alpha'yı yüklerse, klasöre MyModule\2.5.0 yüklenir. Kullanıcı daha sonra 2.5.0-beta yüklerse, 2.5.0-beta sürümü klasörünün MyModule\2.5.0içeriğinin üzerine yazar. Bu yaklaşımın bir avantajı, üretime hazır sürümü yükledikten sonra yayın öncesi sürümün yüklemesini kaldırmaya gerek olmamasıdır. Aşağıdaki örnekte neler bekleyebileceğiniz gösterilmektedir:

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, -RequiredVersion sağlanmadığında modülün en son sürümünü kaldırır. -RequiredVersion belirtilirse ve ön sürümse, -AllowPrerelease komutuna eklenmelidir.

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

Daha fazla ayrıntı’yı seçin