C#からPowerShellを実行する時に行った手順を纏めておきます。
2022/4/12 時点でGoogleでC#からPowerShellを実行する方法をぐぐっても古い記事しかヒットせず、役に立ちませんでした。
なので自分用にメモっておきます。
まず、C#からPowerShellを実行する場合
System.Management.Automation.dll
を参照設定しておく必要があります。
古い解説サイトには、
C:\Program Files (x86) の中にある、といった解説がありましたが実際には見つかりませんでした。
そこで以下サイトから
System.Management.Automation.dll
をダウンロードしました。
https://www.exefiles.com/ja/dll/system-management-automation-dll/
ダウンロードが完了したら
プロジェクトの上で右クリック >参照の追加
参照マネージャ > 参照 > 参照(B)… をクリックしてダウンロードした
System.Management.Automation.dll
を参照設定します。
この設定が終わったらソースコードの冒頭に
using System.Management.Automation;
using System.Management.Automation.Runspaces;
を記述します。
参照設定が終わってからでないとusing設定するとエラーが発生します。
※注意※
なお、NuGetパッケージで automationと検索すると
System.Management.Automation
というプログラムが表示されますが、これを設定しても
using System.Management.Automation;
using System.Management.Automation.Runspaces;
の宣言をするとエラーが発生します。
地道に
System.Management.Automation.dll
を探しプロジェクトに参照設定する様にしましょう。
追記:2022/4/13 11:10
なお、プロジェクトの中から参照したアセンブリはあくまでも参照しているだけです。その為、参照先のアセンブリを削除してしまうとこの様なエラーメッセージが表示されてしまうので注意しましょう。