2010-02-19 33 views
5

我已經在C#中創建了一些自定義PowerShell Cmdlet,並希望提供一些使用get-help cmdlet顯示的信息;例如「get-help my-cmdlet」。支持自定義PowerShell cmdlet的獲取幫助

我已經創建了一個派生自PSSnapIn的基本管理單元,並且重寫了描述,名稱和供應商屬性。我還創建了我的幫助文件「Cmdlets.dll-Help.xml」。按照說明here,Cmdlets.dll是程序集的正確名稱。

我創建了下面的腳本來快速測試此助陣:

$ErrorActionPreference = "Stop" 
$scriptFolder = Split-Path $script:MyInvocation.MyCommand.Path 

$dll = ($scriptFolder + "\Release\x64\Cmdlets.dll") 
Write-Host "Testing Cmdlets in $dll" -fore Green 

[System.Reflection.Assembly] $assembly = [System.Reflection.Assembly]::LoadFrom($dll) 
Import-Module -assembly $assembly 

get-help get-latestfiles 

這似乎只是把一些默認的幫助有關cmdlet參數,但沒有得到任何我的例子我已經寫在XML文件。有沒有人有任何想法,爲什麼這是?

回答

2

似乎有兩個問題,我的幫助無法正常工作。首先,需要將XML複製到Cmdlet DLL的輸出目錄中,以便獲取Powershell。

第二個原因似乎是我的幫助文件中的錯誤。我不確定這是什麼,但Powershell似乎默默地失敗了,即使錯誤行爲首選項被設置爲停止。我最終將XML直接從C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ en-US \ Microsoft.PowerShell.Commands.Management.dll-Help.xml中提取出來並進行修改以適應我的需要。

1

默認情況下,Get-Help僅顯示cmdlet幫助的子集。指定 - 全看參數幫助和你的例子:

Get-Help Get-LatestFiles -Full 

如果這不是問題(聽起來好像是沒有),那麼看看這個PowerShell script that generates skeleton MAML files。運行它並使用它的輸出來查看是否顯示適當的幫助。

+0

不幸的是,它看起來像我失去了別的東西。指定完整的開關只顯示與Powershell 2提供的相同的默認幫助。 – Jason 2010-02-22 11:52:38