编辑已导入的模块

时间:2013-09-27 07:39:52

标签: powershell module import-module

在导入我的powershell模块(MyModule.psm1)之前,我已经写了一个函数:

Function T1()
{
    Write-Host "T1 is just called" -ForegroundColor red
}

在我的MyModule.psd1

@{
    PowerShellVersion = '2.0'
    PowerShellHostName = ''
    PowerShellHostVersion = '2.0'
    RequiredModules = @()
    ScriptsToProcess = @()
    NestedModules = @()
    FunctionsToExport = '*'
    CmdletsToExport = '*'
    VariablesToExport = '*'
    ModuleList = @()
    FileList = @()
}

当我将两个文件复制到:

时,导入正常

C:\Users\fwaheed\Documents\WindowsPowerShell\Modules\MyModule

我可以在PowerShell会话中运行T1。但现在我想在同一个模块中添加一个新功能,即:

Function T2()
{
    Write-Host "Its now T2.." -ForegroundColor red
}

即使在重新启动PowerShell会话后,它也永远无法识别T2,但T1仍然有效。如何编辑已导入的模块,以便立即进行更改。

3 个答案:

答案 0 :(得分:46)

-Force命令与Import-Module一起使用,然后重新加载。

答案 1 :(得分:29)

导入模块后,由于模块已加载到内存中,因此无法识别对模块的更改。但是,我始终能够执行Remove-Module foo,然后使用Import-Module foo来加载新功能。

所有这一切,你的PSD1文件看起来不正确。它应该将ModuleToProcess字段设置为“MyModule.psm1”。然后当您执行Import-Module MyModuleImport-Module .\mymodule.psd1时,PowerShell会找到&加载关联的MyModule.psm1文件。我想知道这是否会导致您与PowerShell的某些缓存相冲突?

答案 2 :(得分:0)

以下是到目前为止唯一对我有用的解决方案,在configure vscode to run a new session on each debug中,我没有找到其他解决方案来工作和调试Powershell类。

enter image description here