编辑已导入的模块

Far*_*eed 27 powershell module import-module

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

Function T1()
{
    Write-Host "T1 is just called" -ForegroundColor red
}
Run Code Online (Sandbox Code Playgroud)

在我的MyModule.psd1:

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

这是导入正常,当我复制两个文件时:

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

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

Function T2()
{
    Write-Host "Its now T2.." -ForegroundColor red
}
Run Code Online (Sandbox Code Playgroud)

即使在重新启动我的PowerShell会话后,它仍然无法识别T2,但T1仍然可以正常工作.如何编辑已导入的模块,以便立即进行更改.

Ale*_*tny 48

使用-Force命令,Import-Module然后重新加载它.


Kei*_*ill 29

导入模块后,由于模块已加载到内存中,因此无法识别对模块的更改.但是,我总是能够做一个Remove-Module foo,然后Import-Module foo加载新功能.

总而言之,您的PSD1文件看起来不正确.它应该有一个ModuleToProcess字段设置为'MyModule.psm1'.然后,当你做Import-Module MyModule或者Import-Module .\mymodule.psd1,PowerShell中会发现与加载相关的MyModule.psm1文件.我想知道这是否会导致你违反PowerShell的一些缓存呢?