私が欲しいもの
ビルド システムで使用するために、多数の 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 MyModuleVisual Studio からInstall.ps1実行しInit.ps1ていて、呼び出されたとき。しかし、純粋な PowerShell からの同じコマンドは何もしません。