私はC#でPowerShellモジュールを開発し、いくつかのコマンドを実装しました。
PowershellによってインポートされたときにこのモジュールでC#コードを実行するにはどうすればよいですか?
私はC#でPowerShellモジュールを開発し、いくつかのコマンドを実装しました。
PowershellによってインポートされたときにこのモジュールでC#コードを実行するにはどうすればよいですか?
ModuleToProcess (または V3 では RootModule) フィールドを PSM1 ファイルに設定し、NestedModules を DLL に設定して、モジュール マニフェストを作成します。
RootModule = 'Pscx.psm1'
NestedModules = 'Pscx.dll'
これは、同じことを行うPowerShell Community Extensionsで行うことです。つまり、最初にスクリプトを起動します。PSD1 ファイルはこちらでご覧いただけます。
これは非常に基本的なソリューションです。{} 内のコードをソースに置き換えるだけです。(以下の私のテスト)
add-type 'public class c{public const string s="Hello World";}';[c]::s
楽しい
また、.NET でバイナリ コマンドレットを作成しています。少なくとも DriveCmdletProvider から継承するクラスを作成すると、そのクラスは InitializeDefaultDrives を実装できることがわかりました。
このメソッドは、DLL で import-module が呼び出されたときに呼び出されます。
この「機能」を使用して、一部のセッション (またはモジュール セッション) データを立ち上げることができます。