2013-06-23 3 views
0

Я реализую собственный поставщик PowerShell, и я хотел бы добавить файл справки MAML для провайдера, к которому можно получить доступ, используя Get-Help MyProvider.Как зарегистрировать помощь для заказного поставщика PowerShell?

Я попытался добавить XML-файл MAML в ProviderConfigurationEntry при регистрации поставщика в PS SnapIn. Из документации 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 в качестве справочника поставщика?

ответ

1

Я понял. Оказывается, что имя поставщика было написано с ошибкой в ​​файле MAML.

Имя в /helpItems/providerHelp/Name должно совпадать с именем поставщика, указанным в объекте ProviderConfigurationEntry. Кроме того, я указал полный путь к файлу MAML в качестве третьего параметра конструктора ProviderConfigurationEntry, и он работает!

+0

Полный путь, кажется, плохая идея. –

Смежные вопросы