Powershell: редактирование уже импортированного модуля
перед импортом модуля powershell (MyModule.psm1)
, Я написал в нем одну функцию:
Function T1()
{
Write-Host "T1 is just called" -ForegroundColor red
}
в своем 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 = @()
}
это импортируется нормально, когда я скопировал оба файла в:
C:UsersfwaheedDocumentsWindowsPowerShellModulesMyModule
и я могу бежать T1
в моем сеансе powershell.
но теперь я хотел добавить новую функцию в тот же модуль, т. е.:
Function T2()
{
Write-Host "Its now T2.." -ForegroundColor red
}
даже после перезапуска моего сеанса Powershell он никогда не распознает T2
, однако T1
до сих пор работает.
как я могу отредактировать свой уже импортированный модуль, чтобы изменения были доступны немедленно...
спасибо...
2 ответов
после импорта модуля изменения в нем не распознаются, так как модуль загружается в память. Тем не менее, я всегда был в состоянии сделать Remove-Module foo
, а затем Import-Module foo
для загрузки новых функций.
все, что сказано, ваш файл PSD1 выглядит не так. Он должен иметь ModuleToProcess
поле установлено в ' MyModule.psm1 успешно'. Тогда, когда вы делаете Import-Module MyModule
или Import-Module .\mymodule.psd1
, PowerShell найдет и загрузит связанный . Интересно, вызывает ли это у вас проблемы с кэшированием Использование PowerShell?