Moduljegyzék készítése (Module Manifest)

Korábban láthattuk a get-module futtatása során, hogy egy modulnak lehetne verziója, leírása és sok egyéb metaadata, de vajon hogyan lehet ezeket megadni? Erre egy újabb fájltípus, a moduljegyzék , vagy eredeti nevén module manifest  szolgál. Ez egy szövegfájl, amiben egy hashtábla formátumban vannak megadva a modulhoz tartozó leíró adatok. Hogyan lehet ilyen fájlt létrehozni? Erre a New-ModuleManifest  cmdletet használhatjuk:

[16] PS C:\> New-ModuleManifest -Path $pshome\modules\popup\popup.psd1 -Autho

r "Soós Tibor" -ModuleToProcess popup -ModuleVersion 1.0.0.0 -Description "Gr

afikus Popup ablak"

 

cmdlet New-ModuleManifest at command pipeline position 1

Supply values for the following parameters:

NestedModules[0]:

CompanyName:

Copyright:

TypesToProcess[0]:

FormatsToProcess[0]:

RequiredAssemblies[0]:

FileList[0]:

[17] PS C:\>

[18] PS C:\> Remove-Module popup

[19] PS C:\> Import-Module popup

[20] PS C:\> Get-Module popup | fl

 

 

Name              : popup

Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\popup

                    \popup.psm1

Description       : Grafikus Popup ablak

ModuleType        : Script

Version           : 1.0.0.0

NestedModules     : {}

ExportedFunctions : Read-Popup

ExportedCmdlets   : {}

ExportedVariables : ReturnButtons

ExportedAliases   : popup

A moduljegyzék létrehozása során én csak a legfontosabb adatokat adtam meg a [16]-os sorban, de a PowerShell szíve szerint minden további adatokat is bekérne, amelyekre rá is kérdez, de nem szükséges ezekre megadni a választ. Ezután eltávolítottam a modul korábban jegyzék nélkül importált változatát [18], majd az újat beimportáltam [19], majd látható, hogy az így lekérdezett modulinformációk [20] már tartalmazzák a jegyzékben meghatározott adatokat is.

Nézzük meg magát a jegyzékfájlt:

[23] PS C:\> Get-Content $pshome\modules\popup\popup.psd1

#

# Module manifest for module 'popup'

#

# Generated by: Soós Tibor

#

# Generated on: 2009. 12. 06.

#

 

@{

 

# Script module or binary module file associated with this manifest

ModuleToProcess = 'popup'

 

# Version number of this module.

ModuleVersion = '1.0.0.0'

 

# ID used to uniquely identify this module

GUID = '200a1d9f-ae8f-4bca-8e70-cd44b23dc294'

 

# Author of this module

Author = 'Soós Tibor'

 

# Company or vendor of this module

CompanyName = 'Unknown'

 

# Copyright statement for this module

Copyright = '(c) 2009 Soós Tibor. All rights reserved.'

 

# Description of the functionality provided by this module

Description = 'Grafikus Popup ablak'

 

# Minimum version of the Windows PowerShell engine required by this module

PowerShellVersion = ''

 

# Name of the Windows PowerShell host required by this module

PowerShellHostName = ''

 

# Minimum version of the Windows PowerShell host required by this module

PowerShellHostVersion = ''

 

# Minimum version of the .NET Framework required by this module

DotNetFrameworkVersion = ''

 

# Minimum version of the common language runtime (CLR) required by this modu

le

CLRVersion = ''

 

# Processor architecture (None, X86, Amd64, IA64) required by this module

ProcessorArchitecture = ''

 

# Modules that must be imported into the global environment prior to importi

ng this module

RequiredModules = @()

 

# Assemblies that must be loaded prior to importing this module

RequiredAssemblies = @()

 

# Script files (.ps1) that are run in the caller's environment prior to impo

rting this module

ScriptsToProcess = @()

 

# Type files (.ps1xml) to be loaded when importing this module

TypesToProcess = @()

 

# Format files (.ps1xml) to be loaded when importing this module

FormatsToProcess = @()

 

# Modules to import as nested modules of the module specified in ModuleToPro

cess

NestedModules = @()

 

# Functions to export from this module

FunctionsToExport = '*'

 

# Cmdlets to export from this module

CmdletsToExport = '*'

 

# Variables to export from this module

VariablesToExport = '*'

 

# Aliases to export from this module

AliasesToExport = '*'

 

# List of all modules packaged with this module

ModuleList = @()

 

# List of all files packaged with this module

FileList = @()

 

# Private data to pass to the module specified in ModuleToProcess

PrivateData = ''

 

}

Ebben látható, hogy milyen adatok kitöltése lehetséges, ráadásul minden adatmező kis magyarázattal is el van látva.

Megjegyzés

Annak ellenére, hogy az Import-Module cmdletnek van -version paramétere, és a jegyzékfájlban lehet verziót definiálni sajnos a különböző modulverziók párhuzamos tárolása és kezelése nem megoldott. A mappanevek kötöttsége miatt egy modulmappában nem lehet egyidejűleg két verziója a modulunknak.



Word To HTML Converter