在Visual Studio中引用system.management.automation.dll

我开始研究PowerShell模型和pipe理单元开发。 我注意到的第一件事是引用System.management.automation.dll。 但是,在Visual Studio中,.NET选项卡没有该程序集,也不能浏览

C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll

做一个基于文件的参考。

我是否被迫将这个文件手动复制出来以方便参考 ?

Nuget上的System.Management.Automation

更新:包现在由PowerShell Team拥有。 好哇!

System.Management.Automation.dll的副本在安装Windows SDK(它是一个合适的最新版本)时会被安装。 它应该在C:\ Program Files \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ v1.0 \

我不能让SDK正确安装(一些文件似乎没有签名,类似的东西)。 我在这里find了另一个解决scheme,似乎对我来说还好。 它根本不需要安装新文件。 基本上,你所做的是:

在文本编辑器中编辑.csproj文件,并添加:

 <Reference Include="System.Management.Automation" /> 

到有关部分。

希望这可以帮助。

如果您不想安装Windows SDK,则可以通过在powershell中运行以下命令来获取该dll:

 Copy ([PSObject].Assembly.Location) C:\ 

如果它是64位他们 – C:\ Program Files文件(x86) \参考大会\微软\ WindowsPowerShell ** 3.0 **

版本可能不同

Powershell SDK(C:\ Program Files \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ v1.0)附带的程序集不附带Powershell 2特定types。

手动编辑csproj文件解决了我的问题。

我使用了VS Project Reference菜单并浏览到:C:\ windows \ assembly \ GAC_MSIL \ System.Management.Automation,并为dll和Runspaces dll添加了一个引用。

我不需要破解.csprj文件并添加上面提到的参考线。 我没有安装Windows SDK。

我做了上面提到的Powershell副本:复制([PSObject] .Assembly.Location)C:\

我的testing与Get-Process Powershell命令然后工作。 我使用Powershell的例子来开发第5章。

你也可以使用nuget: https ://www.nuget.org/packages/System.Management.Automation/这也许是一个更好的select。