Решение
Кредит mklement0
Вот что я сделал, чтобы опубликовать свой модуль bin\MyModule.0.1.0.nupkg
в PSGallery:
- Переименовать
bin\MyModule.0.1.0.nupkg
вbin\MyModule.0.1.0.zip
- Извлеките
bin\MyModule.0.1.0.zip
вbin\MyModule\
(имя извлеченной папки должно совпадать с именем файла.psd1
внутри, поэтому в моем случае теперь был файлbin\MyModule\MyModule.psd1
). - Удалите файл
[Content_Types].xml
из извлеченной папки (неудаление этого вызывает ошибку при попытке загрузить и установить модуль из PSGallery, по-видимому, из-за того, что 2 копии этого файла присутствуют в полученном.nupkg
).
Затем я смог запустить эту команду:
PS> Publish-Module -NuGetApiKey xxx -Path .\bin\MyModule
И это сработало! Мой модуль теперь опубликован в PSGallery.
Исходное сообщение
У меня есть модуль Powershell, созданный и упакованный в виде файла .nupkg с помощью Autorest.Powershell. Теперь я хочу опубликовать свой модуль в галерее Powershell, но не могу понять, как его Работа. Я пытался:
PS> Publish-Module -NuGetApiKey xxx -Path .\bin\MyModule.0.1.0.nupkg
Publish-Module: The specified path '.\bin\MyModule.0.1.0.nupkg' is not a valid directory.
PS> Publish-Module -NuGetApiKey xxx -Path .\bin\
Publish-Module: The specified module with path '.\bin' was not published because no valid module was found with that path.
PS> Publish-Module -NuGetApiKey xxx -Name .\bin\MyModule.0.1.0.nupkg
Get-Module: C:\Users\bport\Documents\PowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1:10630
Line |
10630 | … $module = Microsoft.PowerShell.Core\Get-Module -ListAvailable -Name …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The specified module 'D:\workarea\bin\MyModule.0.1.0.nupkg'
| was not found. Update the Name parameter to point to a valid path, and then try again.
Publish-Module: The specified module '.\bin\MyModule.0.1.0.nupkg' was not published because no module with that name was found in any module directory.
PS> dotnet nuget push .\bin\MyModule.0.1.0.nupkg --api-key xxx --source https://www.powershellgallery.com/api/v2
Pushing MyModule.0.1.0.nupkg to 'https://www.powershellgallery.com/api/v2'...
PUT https://www.powershellgallery.com/api/v2/
MethodNotAllowed https://www.powershellgallery.com/api/v2/ 580ms
error: Response status code does not indicate success: 405 (Method Not Allowed).
Публикация файлов .nupkg в галерее Powershell должна быть возможной, поскольку вы можете загружать пакеты из галереи Powershell в виде файлов .nupkg. Кроме того, в документации Autorest говорится: ">это о сгенерированных файлах nupkg:
Структура .nupkg создана таким образом, что ее можно загрузить как часть PSRepository. Кроме того, этот пакет находится в формате для распространения в PSGallery.
Я предполагаю, что это возможно, но я просто не могу понять, как это сделать. Любая помощь будет оценена
Publish-Module
, требует, чтобы модуль НЕ был упакован. Он сделает упаковку за вас. - person Daniel   schedule 18.02.2021