🛠️
PowerShell Core に対応したモジュール開発環境を作ってみる
はじめに
PowerShell Core が 6.0.0-beta になり .NET Core 2.0 に対応しました。いよいよ PowerShell Core も本格的になってきたので Visual Studio で PowerShell Core なモジュールを作成するための手順をまとめました。
実行手順
MyGet への参照の追加
PowerShell Core のライブラリはまだ NuGet には展開されておらず、MyGet から入手する必要があります。そこで ツール - オプション - NuGet パッケージ マネージャー - パッケージ ソース に URL を追加します。
https://powershell.myget.org/F/powershell-core/api/v3/index.json
プロジェクトの作成
新しいプロジェクト のプロジェクトの種類で クラス ライブラリ (.NET Core) を選択します。単体テスト プロジェクトを作成する場合は 単体テスト プロジェクト (.NET Core) を選択します。
NuGet パッケージの追加
NuGet パッケージの管理 を開くと パッケージ ソース で MyGet を選択できるようになり、PowerShell Core のライブラリを追加できます。モジュール本体には System.Management.Automation
を追加します。単体テスト プロジェクトは Runspace
を作成してテストすることになるので、合わせて以下のパッケージも追加します。
Microsoft.PowerShell.SDK
Microsoft.PowerShell.Commands.Diagnostics
Microsoft.PowerShell.Commands.Management
Microsoft.PowerShell.Commands.Utility
Microsoft.PowerShell.ConsoleHost
Microsoft.WSMan.Management
Microsoft.WSMan.Runtime
追加するパッケージが足りないと Runspace
を作ったときにエラーが発生します。
System.Management.Automation.Runspaces.PSSnapInException: 'Cannot load Windows PowerShell snap-in Microsoft.PowerShell.Diagnostics because of the following error: Could not load file or assembly 'C:\Users\...\Documents\Visual Studio 2017\Projects\Module1.Tests\bin\Debug\netcoreapp2.0\Microsoft.PowerShell.Commands'. 指定されたファイルが見つかりません。'
Discussion