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.