私が欲しいもの
ビルド システムで使用するために、多数の PowerShell スクリプトを Nuget パッケージとして公開したいと考えています。
PowerShellGetを使用して、インストール作業とバージョン管理を行いたいと考えています。
これらのスクリプトを Visual Studio ソリューションの一部にするのではなく、スタンドアロン スクリプトとして使用したいと考えています。
利用シーン
どのシステムでも、構成された Nuget プロバイダーを使用して、ユーザーは次を実行します。
Install-Module MyModule
その瞬間から、そのモジュールからのすべてのエクスポートは、このユーザーが永続的に利用できます。また、ユーザーはそのコマンドを再度呼び出して、それらのスクリプトのバージョンを更新することもできます。
私がしたこと
ここでパッケージの現在の状態を見つけることができます: GitHub
Nuget プロバイダーをローカル Nuget サーバーに追加して構成しました
この呼び出しを行うには
Get-PackageProvider -Name NuGet -ForceBootstrap
、Set-PSRepository -Name My_Nuget_Repo -SourceLocation http://my-nuget/api -InstallationPolicy Trusted
によってローカルにインポートできる適切なモジュールを作成しました
Import-Module
そのモジュールでNugetパッケージを作成して公開しました
問題
Install-Module
コマンドレットでそのパッケージをインストールでき、Get-InstalledModule
リストの後半で確認できます。
ただし、利用できる機能はありません。
また、何があってInstall-Module
も、私のパッケージからスクリプトを呼び出さないでください:
ScriptsToProcess
から呼び出していないMyModule.psd1
- フォルダ
Install.ps1
から呼び出していませんtools
- フォルダ
Init.ps1
から呼び出していませんtools
- モジュールによってエクスポートされたコマンドレットは使用できず、モジュールはによってインポートできません
Import-Module
(Visual Studios からインストールした場合、同じパッケージが正しく動作しInstall-Package MyModule
、スクリプトが呼び出され、PowerShell モジュールがインポートされます)。
調査
PowerShellGet
に基づいているためOneGet
、問題はInstall-Package
コマンドレット (コマンドレット内で呼び出されますInstall-Module
) にあるようです。
Install-Package MyModule
Visual Studio からInstall.ps1
実行しInit.ps1
ていて、呼び出されたとき。しかし、純粋な PowerShell からの同じコマンドは何もしません。