Я создал некоторый пользовательский PowerShell Cmdlets в C# и хотел бы предоставить некоторую информацию, которая будет отображена с помощью получать-справки cmdlet; например, "получать-справка мой-cmdlet".
Я создал основной обрыв, происходящий из PSSnapIn, и переопределил Описание, свойства 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
Это, кажется, просто поднимает некоторую справку по умолчанию о cmdlet параметрах, но не удается получить любой из моих примеров, которые я записал в XML-файле. У кого-либо есть какие-либо мысли о том, почему это?
Похоже, что было две проблемы, из-за которых моя помощь не работала. Первая заключалась в том, что XML необходимо скопировать в выходной каталог Cmdlet DLL для того, чтобы Powershell его подхватил.
Вторая причина, похоже, заключалась в ошибке в моем файле справки. Я не уверен, что это было, но Powershell, похоже, просто молча завершил работу, несмотря на то, что предпочтение действия при ошибке было установлено на остановку. В итоге я взял XML прямо из C:\Windows\System32\WindowsPowerShell\v1.0\en-US\Microsoft.PowerShell.Commands.Management.dll-Help.xml и изменил его под свои нужды.
Get-Help показывает только подмножество справка для командлета по умолчанию. Укажите -Full, чтобы увидеть справку по параметрам и ваши примеры:
Get-Help Get-LatestFiles -Full
Если проблема не в этом (похоже, что это не так), взгляните на этот сценарий PowerShell, который генерирует скелетные файлы MAML . Запустите его и используйте его вывод, чтобы увидеть, отображается ли у вас правильная справка.