0

我正在实现一个自定义 PowerShell 提供程序,我想为提供程序添加一个 MAML 帮助文件,可以使用Get-Help MyProvider.

我尝试将 MAML XML 文件添加到ProviderConfigurationEntry在 PS 管理单元中注册提供程序时,从 MSDN 文档来看,这似乎是正确的方法(http://msdn.microsoft.com/en-us/library/system.management.automation.runspaces.providerconfigurationentry_members%28v=vs.85%29.aspx)。我试图指定 XML 文件的完整路径,也只指定文件名。

public override Collection<ProviderConfigurationEntry> Providers 
{
    get 
    {
        if (this.providers == null)
        {
            if (this.helpFiles == null)
            {
                this.LoadHelpFiles();
            }

            this.providers = new Collection<ProviderConfigurationEntry> 
            {
                new ProviderConfigurationEntry(
                    "MyProvider",
                    typeof(MyProvider),
                    "MyApplication.PsProvider.dll-Help.xml")
            };
        }

        return this.providers;
    }
}

但是,这不起作用。Get-Help MyProvider搜索所有帮助主题,而不是显示提供程序帮助文件,并且帮助文件未在Get-Help -Category provider.

如何注册 MAML 文件作为提供者的帮助?

4

1 回答 1

1

我想到了。结果证明提供程序的名称在 MAML 文件中拼写错误。

中的名称/helpItems/providerHelp/Name必须与ProviderConfigurationEntry对象中指定的提供者名称相匹配。此外,我将 MAML 文件的完整路径指定为ProviderConfigurationEntry构造函数的第三个参数,它可以正常工作!

于 2013-06-23T16:53:02.337 回答