Скачивание пакета вручную
Коллекция PowerShell поддерживает скачивание пакета с веб-сайта напрямую без использования командлетов PowerShellGet. Вы можете скачать любой пакет как файл пакета NuGet (.nupkg
), который затем можно скопировать в внутренний репозиторий.
Заметка
Скачивание пакета вручную не предназначено для замены командлета Install-Module
.
Скачивание пакета не устанавливает модуль или скрипт. Зависимости не включены в скачанный пакет NuGet. Приведенные ниже инструкции предоставляются только для справочных целей.
Использование ручного скачивания для получения пакета
Каждая страница содержит ссылку для скачивания вручную, как показано здесь:
страница отображения пакета
Чтобы скачать вручную, щелкните Скачайте необработанный файл nupkg. Копия пакета копируется в папку скачивания для браузера с именем <name>.<version>.nupkg
.
Пакет NuGet — это ZIP-архив с дополнительными файлами, содержащими сведения о содержимом пакета. Некоторые браузеры, такие как Internet Explorer, автоматически заменяют расширение файла .nupkg
.zip
. Чтобы развернуть пакет, переименуйте файл .nupkg
в .zip
, если это необходимо, а затем извлеките содержимое в локальную папку с помощью Expand-Archive
или другого средства ZIP-файла.
Файл пакета NuGet включает следующие элементы NuGet,, которые не являются частью исходного упаковаемого кода:
- Папка с именем
_rels
— содержит файл.rels
, в котором перечислены зависимости. - Папка с именем
package
— содержит данные, относящиеся к NuGet - Файл с именем
[Content_Types].xml
— описывает, как расширения, такие как PowerShellGet, работают с NuGet. - Файл с именем
<name>.nuspec
— содержит большую часть метаданных.
Установка модулей PowerShell из пакета NuGet
Заметка
Эти инструкции НЕ дают тот же результат, что и запуск Install-Module
. Эти инструкции соответствуют минимальным требованиям. Они не предназначены для замены Install-Module
.
Некоторые шаги, выполняемые Install-Module
, не включаются.
Самый простой подход — удалить элементы NuGet из папки. Удаление элементов оставляет код PowerShell, созданный автором пакета. Список элементов, относящихся к NuGet, см. в разделе Использование ручного скачивания для получения пакета.
Ниже приведены действия.
- Разблокируйте скачанный в Интернете файл Пакета NuGet (
.nupkg
), например с помощью командлетаUnblock-File -Path C:\Downloads\module.nupkg
. - Извлеките содержимое пакета NuGet в локальную папку.
- Удалите элементы NuGet из папки.
- Переименуйте папку. Имя папки по умолчанию обычно
<name>.<version>
. Версия может включать-prerelease
, если модуль помечен как предварительная версия. Переименуйте папку только в имя модуля. Например,azurerm.storage.5.0.4-preview
становитсяazurerm.storage
. - Скопируйте папку в одну из папок в
$env:PSModulePath value
.$env:PSModulePath
— это набор путей с запятой, в которых PowerShell должен искать модули.
Важный
Скачивание вручную не содержит зависимостей, необходимых модулю. Если пакет имеет зависимости, они должны быть установлены в системе, чтобы этот модуль работал правильно. В коллекции PowerShell отображаются все зависимости, необходимые пакету.
Установка скриптов PowerShell из пакета NuGet
Заметка
Эти инструкции НЕ дают тот же результат, что и запуск Install-Script
. Эти инструкции соответствуют минимальным требованиям. Они не предназначены для замены Install-Script
.
Самый простой подход — извлечь пакет NuGet, а затем использовать скрипт напрямую.
Ниже приведены действия.
- Разблокируйте скачанный в Интернете файл Пакета NuGet (
.nupkg
), например с помощью командлетаUnblock-File -Path C:\Downloads\package.nupkg
. - Извлеките содержимое пакета NuGet.
- Файл
.PS1
в папке можно использовать непосредственно из этого расположения. - Вы можете удалить элементы NuGet в папке.
Список элементов, относящихся к NuGet, см. в разделе Использование ручного скачивания для получения пакета.
Важный
Скачивание вручную не содержит зависимостей, необходимых модулю. Если пакет имеет зависимости, они должны быть установлены в системе, чтобы этот модуль работал правильно. В коллекции PowerShell отображаются все зависимости, необходимые пакету.
PowerShell Gallery