not - Powershell: edición de un módulo ya importado
install module powershell (2)
Use el comando -Force
con el Import-Module
y lo volverá a cargar.
Antes de importar mi módulo powershell (MyModule.psm1)
, he escrito una función en él:
Function T1()
{
Write-Host "T1 is just called" -ForegroundColor red
}
En mi MyModule.psd1
:
@{
# Minimum version of the Windows PowerShell engine required by this module
PowerShellVersion = ''2.0''
# Name of the Windows PowerShell host required by this module
PowerShellHostName = ''''
# Minimum version of the Windows PowerShell host required by this module
PowerShellHostVersion = ''2.0''
# Modules that must be imported into the global environment prior to importing this module
RequiredModules = @()
# Script files (.ps1) that are run in the caller''s environment prior to importing this module
ScriptsToProcess = @()
# Modules to import as nested modules of the module specified in ModuleToProcess
NestedModules = @()
# Functions to export from this module
FunctionsToExport = ''*''
# Cmdlets to export from this module
CmdletsToExport = ''*''
# Variables to export from this module
VariablesToExport = ''*''
# List of all modules packaged with this module
ModuleList = @()
# List of all files packaged with this module
FileList = @()
}
Esto se importa bien, cuando copié ambos archivos en:
C:/Users/fwaheed/Documents/WindowsPowerShell/Modules/MyModule
y puedo ejecutar T1
en mi sesión de PowerShell.
Pero ahora quería agregar una nueva función en el mismo módulo, es decir:
Function T2()
{
Write-Host "Its now T2.." -ForegroundColor red
}
Incluso después de reiniciar mi sesión de Powershell, nunca reconoce T2
, sin embargo, T1
todavía está funcionando.
¿Cómo puedo editar mi módulo ya importado de modo que los cambios estén disponibles de inmediato ...
Gracias un montón...
Una vez que se ha importado un módulo, no se reconocen los cambios en él ya que el módulo se carga en la memoria. Sin embargo, siempre he sido capaz de hacer un Remove-Module foo
, seguido de un Import-Module foo
para cargar nuevas funciones.
Dicho todo esto, su archivo PSD1 no se ve bien. Debería tener un campo ModuleToProcess
establecido en ''MyModule.psm1''. Luego, cuando realice Import-Module MyModule
o Import-Module ./mymodule.psd1
, PowerShell buscará y cargará el archivo MyModule.psm1
asociado. Me pregunto si eso te está haciendo tropezar con el almacenamiento en caché de PowerShell.