2013-06-23 133 views
0

我正在實現一個自定義的PowerShell提供程序,我想爲該提供程序添加一個MAML幫助文件,可以使用Get-Help MyProvider訪問該文件。如何註冊自定義PowerShell提供程序的幫助?

在PS提供程序中註冊提供程序時,我試圖將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文件作爲提供者的幫助?

回答

1

我想通了。原來,提供者的名字在MAML文件中拼寫錯誤。

/helpItems/providerHelp/Name中的名稱必須與ProviderConfigurationEntry對象中指定的提供者名稱匹配。另外,我將MAML文件的完整路徑指定爲ProviderConfigurationEntry構造函數的第三個參數,它的工作原理!

+0

完整的路徑似乎是一個壞主意。 –