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

时间:2015-01-29 21:51:43

标签: powershell powershell-v2.0

**更新**

原来我只是一个白痴。在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')

然后当我重新加载模块时,无论是通过Import-Module ModuleName -force还是关闭我的会话,或者我甚至尝试重新启动计算机,$ varTable都会按预期更改,但示例中的额外行当我执行Get-Help Test-Function -Full时,文本永远不会消失。

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

Get-ChildItem $psHome\Modules\ModuleName\ModuleName.psm1 | %{Notepad.exe $_.FullName}

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

此时我实际上已经走了这么远,因为删除了我所有功能的所有基于注释的帮助,重新启动并重新加载模块,如果我调用Get-Help,所有基于注释的帮助仍会显示在我的一个模块功能上。但是,每次编辑时,如果我在$ varTable中更改键的名称或更改键的数量,或者即使我添加一个全新的变量,一个简单的Import-Module ModuleName -Force就足以使改变我的会议。

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

我已经看到有一些类似的问题,其中-force开关有效,但我将这个问题作为一个新问题发布,因为这些问题已经过时并且没有解决我的问题。

谢谢, 比尔

**更新**

我刚删除了psm1中的所有函数,以便所有模块都分配了一个变量。 Get-Command -Module ModuleName什么都没有返回,尝试使用Get-Help FunctionName返回一个错误,找不到帮助主题。

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

1 个答案:

答案 0 :(得分:1)

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

Get-Module ModuleName -Refresh

顺便说一句,你是在更改之间移除模块,例如:

Remove-Module ModuleName
Import-Module ModuleName