对基于注释的帮助的编辑不会刷新



** Update **

原来我只是一个白痴。在 psm1 文件中多次定义了相同的函数,每个函数都有自己的帮助文本副本。删除额外的定义并编辑帮助文本会导致预期行为。

我已标记此问题以供版主审核和删除。

我有一个 psm1 模块文件和相应的 psd1 清单。

$varTable = @{}
$varTable.Add('Key1','First Example Value')
$varTable.Add('Key2','Second Example Value')
function Test-Function{
    Write-Host "Hello World"
    <#
    .EXAMPLE
    Test-Function
    This Function simply prints Hello World.
    This is an extra line in this example text that I will delete later.
    #>
}
Export-ModuleMember -Variable "*"

我在帮助注释中的一个示例有一行我想删除的文本。我的问题是,无论我做什么来编辑函数的帮助文本,当我加载模块时,它实际上永远不会改变。案文保持不变。

如果我更改$varTable以添加新密钥,例如:

$varTable.Add('NewKey','New Value')

然后,当我通过导入模块模块名称强制或关闭会话重新加载模块时,或者我什至尝试重新启动计算机,$varTable会按预期更改,但是当我执行 Get-Help 测试函数 -Full 时,示例文本中的额外行永远不会消失。

我已经确认编辑已通过以下命令保存到磁盘:

Get-ChildItem $psHomeModulesModuleNameModuleName.psm1 | %{Notepad.exe $_.FullName}

我在记事本中看到的文本显示文本已消失,它还显示了对$varTable的编辑,但是当我运行 Get-Help 时,文本永远不会更改。

实际上,在这一点上,我已经从所有函数中删除了所有基于注释的帮助,重新启动并重新加载了模块,如果我在我的一个模块函数上调用 Get-Help,所有基于注释的帮助仍然显示。同样,每次编辑时,如果我更改$varTable中的键的名称或更改键的数量,或者即使我添加一个全新的变量,一个简单的导入模块模块名称 -Force 就足以在我的会话中进行更改。

是否有某种我没有清除的缓存?

我已经看到与 -force 开关工作的这个问题有类似的问题,但我将其作为新问题发布,因为这些问题很旧,不能解决我的问题。

谢谢法案

**更新**

我刚刚从 psm1 中删除了所有函数,以便所有模块都分配一个变量。Get-Command -Module ModuleName 未返回任何内容,并且尝试使用 Get-Help FunctionName 将返回找不到帮助主题的错误。

然后,我添加回函数定义,根本没有基于注释的帮助,只有函数代码。当我运行 Get-Help 函数名称时,它会返回甚至不再存在的完整帮助主题。

缓存有关模块的信息。 您可以像这样刷新缓存:

Get-Module ModuleName -Refresh

顺便说一句,您是否在更改之间删除模块,例如:

Remove-Module ModuleName
Import-Module ModuleName

最新更新