Поддержка Get-Help для пользовательского командлета PowerShell - PullRequest
5 голосов
/ 19 февраля 2010

Я создал несколько пользовательских командлетов PowerShell в C # и хотел бы предоставить некоторую информацию для отображения с помощью командлета get-help; например "get-help my-cmdlet".

Я создал базовую оснастку, производную от PSSnapIn, и переопределил свойства Description, Name и Vendor. Я также создал файл справки "Cmdlets.dll-Help.xml". 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

Похоже, что это просто вызывает некоторую справку по умолчанию о параметрах командлета, но не может получить ни одного из моих примеров, которые я написал в файле XML. У кого-нибудь есть мысли о том, почему это так?

Ответы [ 2 ]

2 голосов
/ 22 февраля 2010

Похоже, было две проблемы, из-за которых моя помощь не работала. Сначала было необходимо скопировать XML-файл в выходной каталог DLL-библиотеки Cmdlet, чтобы можно было подобрать Powershell.

Вторая причина - ошибка в моем файле справки. Я не уверен, что это было, но Powershell, казалось, просто молча провалился, хотя предпочтение действия ошибки было остановлено. Я закончил тем, что поднял XML прямо из C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ en-US \ Microsoft.PowerShell.Commands.Management.dll-Help.xml и изменил его в соответствии со своими потребностями.

1 голос
/ 19 февраля 2010

Get-Help по умолчанию показывает только подмножество справки для командлета.Укажите -Полноценный, чтобы увидеть справку по параметрам и ваши примеры:

Get-Help Get-LatestFiles -Full

Если проблема не в этом (звучит так, как будто это не так), посмотрите на этот скрипт PowerShell, который генерирует скелет MAMLфайлы .Запустите его и используйте его вывод, чтобы увидеть, правильно ли отображается справка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...