PowerShellモデルとスナップイン開発について検討し始めています。最初に気づいたのは、System.management.automation.dllを参照することです。ただし、Visual Studioでは、.NETタブにはそのアセンブリがなく、1つも参照できません。
C:\windows\Assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll
ファイルベースの参照を作成します。
NugetのSystem.Management.Automation
NuGetのSystem.Management.Automation.dll 、2015年以降の新しいパッケージ、以前のものとしてリストに載っていません!
Microsoft PowerShellチームがNuGetをパッケージ化しない
Update:パッケージはPowerShellチームが所有するようになりました。ハザ!
Windows SDKをインストールすると、System.Management.Automation.dllのコピーがインストールされます(とにかく適切な最新バージョン)。 C:\ Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0 \にある必要があります
Windows SDKをインストールしたくない場合は、powershellで次のコマンドを実行してdllを取得できます。
Copy ([PSObject].Assembly.Location) C:\
SDKを適切にインストールできませんでした(一部のファイルは署名されていないように見えました)。私は別の解決策を見つけました ここ そしてそれは私にとってはうまくいくようです。新しいファイルをインストールする必要はまったくありません。基本的に、あなたがすることは:
テキストエディターで.csprojファイルを編集し、以下を追加します。
<Reference Include="System.Management.Automation" />
関連セクションへ。
お役に立てれば。
64ビットの場合-C:\ Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell ** 3.0 **
バージョンは異なる可能性があります
VS Project Referenceメニューを使用して、C:\ windows\Assembly\GAC_MSIL\System.Management.Automationを参照し、dllおよびRunspaces dllの参照を追加しました。
.csprjファイルをハックして、上記の参照行を追加する必要はありませんでした。 Windows SDKがインストールされていません。
上記のPowershellコピーを実行しました:コピー([PSObject] .Assembly.Location)C:\
その後、Get-Process Powershellコマンドを使用したテストが機能しました。開発者向けにPowershellの例を使用しました第5章。
Powershell SDKに付属のアセンブリ(C:\ Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0)には、Powershell 2固有のタイプが付属していません。
Csprojファイルを手動で編集して、問題を解決しました。
Nugetを使用することもできます: https://www.nuget.org/packages/System.Management.Automation/ これはおそらくより良いオプションです。