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?


использовать с Import-Module и он перезагрузит его.