我正在实现自定义PowerShell提供程序,我想为提供程序添加一个MAML帮助文件,可以使用Get-Help MyProvider
访问该文件。
我在PS SnapIn中注册提供程序时尝试将MAML XML文件添加到ProviderConfigurationEntry
。从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文件注册为提供者的帮助?
答案 0 :(得分:1)
我明白了。事实证明,提供程序的名称在MAML文件中拼写错误。
/helpItems/providerHelp/Name
中的名称必须与ProviderConfigurationEntry
对象中指定的提供程序名称匹配。另外,我指定MAML文件的完整路径作为ProviderConfigurationEntry
构造函数的第三个参数,它可以工作!