PowerShell Modülünü Harici Olarak Yönetilen Bir Modüle Bağımlı Olan Yerel Repo'da Yayınlayama


0

Aslında ActiveDirectory modülünün yüceltilmiş bir sargısı olan bir PowerShell modülü yazıp derledim. Modülümde de uygun bir Modül Manifesi dosyası var. Ayrıca bir sunucuda barındırılan bir PSRepository yarattım ve bu benim bu modülü benim barındırmak istediğim yer.

Aşağıdaki komutu çalıştırdığımda:

Publish-Module -Name ADWrap -Repository MyRepo -Tags ActiveDirectory -Force -Verbose

Bu hatayı alıyorum:

Publish-PSArtifactUtility: PowerShellGet, 'MyRepo' deposundaki 'ADWrap' modülünün 'ActiveDirectory' modül bağımlılığını çözemez. Bunu doğrulayın.   'ActiveDirectory' bağımlı modülü 'MyRepo' deposunda bulunur. Bu bağımlı modül 'ActiveDirectory' harici olarak yönetiliyorsa,   Modül bildiriminin PSData bölümünde ExternalModuleDependencies girişi.
C: \ Program Files \ WindowsPowerShell \ Modules \ PowerShellGet \ 1.0.0.1 \ PSModule.psm1: 1227 karakterlerinde: 17
+ Yayınla-PSArtifactUtility -PSModuleInfo $ moduleInfo `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ,, ~~~~       + CategoryInfo: InvalidOperation: (:) [Yayınla-PSArtifactUtility], InvalidOperationException
+ FullyQualifiedErrorId: UnableToResolveModuleDependency, Publish-PSArtifactUtility

ExternalModuleDependencies girdisi hakkında çok fazla bilgi yok. Google’ı aradım ve biraz yardımcı olan bu siteleri buldum İşte

Modül Manifestini oluşturduktan sonra, özelliklerini güncellemek için aşağıdakileri yaptım:

Update-ModuleManifest -Path "\\Server\PowerShell Modules\ADWrap\Version 1.6.1\ADWrap\ADWrap.psd1" -ExternalModuleDependencies 'ActiveDirectory'

Bu bana Harici Modül Bağımlılıkları kodunu dahil etmenin doğru yolunu gösteren şeyi verdi, ancak hala hatayı alıyorum. Özel Veri kodu, modül manifestosu şöyle görünür:

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

    PSData = @{

        # Tags applied to this module. These help with module discovery in online galleries.
        # Tags = @()

        # A URL to the license for this module.
        # LicenseUri = ''

        # A URL to the main website for this project.
        # ProjectUri = ''

        # A URL to an icon representing this module.
        # IconUri = ''

        # ReleaseNotes of this module
        # ReleaseNotes = ''

        # External dependent modules of this module
        ExternalModuleDependencies = 'ActiveDirectory'

    } # End of PSData hashtable

 } # End of PrivateData hashtable

Neyi kaçırdığımdan emin değilim ve çevrimiçi olarak bu tür bir konuda çok fazla bir şey görmedim, bu nedenle herhangi bir yardımdan memnun olurum.

Yanıtlar:


0

Ben ilginç bir şey buldum. PowerShell.org'daki bu cevap ExternalModuleDependencies özelliğinin (Update-ModuleManifest cmdlet'i aracılığıyla oluşturduğum) gerçekten yanlış oluşturulduğunu belirtti.

Güncellenen modül bildirimini manuel olarak açtım ve bunu değiştirdim:

    # External dependent modules of this module
    ExternalModuleDependencies = 'ActiveDirectory'

buna:

    # External dependent modules of this module
    ExternalModuleDependencies = @('ActiveDirectory')

Bağımlılığın bir dizi biçiminde olması gerekiyor gibi görünüyor. Neden sadece otomatik olarak benden daha fazla üretmiyor. Bundan sonra modülümü yayınlayabildim!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.