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

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

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

进行基于文件的引用。

我必须手动复制文件出来,使一个简单的参考

158774 次浏览

系统的副本。管理层。Dll 是在安装 windows SDK 时安装的(不管怎样,这是一个合适的最新版本)。它应该在 C: Program Files Reference Assembly Microsoft WindowsPowerShell v1.0中

我无法正确安装 SDK (有些文件似乎没有签名,诸如此类)。我找到了另一个解决方案 给你,这似乎对我的工作。它根本不需要安装新文件。基本上,你要做的就是:

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

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

有关部分。

希望这个能帮上忙。

Powershell SDK (C: Program Files Reference Assembly Microsoft WindowsPowerShell v1.0)附带的程序集没有 Powershell 2特定类型。

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

如果你不想安装 WindowsSDK,你可以通过在 powershell 中运行以下命令来获得 dll:

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

系统。管理。自动化

NuGet 上的 System.Management.Automation.dll,2015年更新的软件包,不像上一个那样未列出!

MicrosoftPowerShell 团队包 unNuGet

更新: 包现在归 PowerShell 团队所有!

我使用了 VS Project Reference 菜单并浏览到: C: windows 程序集 GAC _ MSIL System。管理层。自动化,并添加了 dll 和 Runspace dll 的引用。

我不需要黑进。Csprj 文件并添加上面提到的引用行。我没有安装 WindowsSDK。

我确实做了上面提到的 Powershell 副本: 复制([ PSObject ] . 汇编. 位置) C:

我用 Get-Process Powershell 命令进行了测试,并用 Powershell 的例子给开发人员讲解了第5章。

如果是64位的话-C: Program Files (x86) Reference Assembly Microsoft WindowsPowerShell * * 3.0 * *

版本可能会有所不同

你也可以使用 nuget.org/package/System. Management.Automent.rel = “ nofollow”> https://www.nuget.org/packages/system 也许这是个更好的选择。

正如@skfd 在上面提到的那样,如果你的目标客户,NuGet 上有 系统,管理,自动化软件包。Net 4.8或更早的版本,但现在已经从列表中删除,因此需要手动安装它。例如:

PM >Install-Package System.Management.Automation.dll -Version 10.0.10586

系统,管理,自动化软件包也可用,如果您的目标。NetCore 或者 Framework5/6,并且似乎是向前发展的受支持的软件包。您还可以尝试安装这个包并手动添加引用,但是 YMMV。