微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PowerShell - 如何正确嵌入 Windows 窗体项目 - .NET 4.7.2

如何解决PowerShell - 如何正确嵌入 Windows 窗体项目 - .NET 4.7.2

我使用 Windows 窗体项目只是为了尝试在使用 PowerShell 脚本的应用程序内部编写脚本时测试一些想法。我无法弄清楚要添加什么 Nuget 包。

我在我的项目中尝试了多个版本的 System.Management.Automation。 https://foxlearn.com/windows-forms/how-to-execute-powershell-script-in-csharp-444.html 上面的文章并没有真正涉及版本信息。 添加 Nuget 包时,我看不到 Runspace 或 PowerShell 对象。

我在 C#/.NET 版本 4.7.2 下使用 Winforms。另外,您应该在 .NET 5 控制台应用程序下使用哪个库/包?

解决方法

我在 C#/.NET 版本 4.7.2 下使用 Winforms

假设您想要该运行时的最新可用版本,您需要引用 "PowerShell 5.1 Reference Assemblies" package

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.PowerShell.5.1.ReferenceAssemblies" version="1.0.0" targetFramework="net472" />
</packages>

顾名思义,这个包只是一个浅层元数据引用,生成的二进制文件将依赖于 Windows PowerShell 5.1(所有当前支持的 Windows 10 版本的默认版本)。


此外,您应该在 .NET 5 控制台应用程序下使用哪个库/包?

在这种情况下,您希望选择 System.Management.Automation 的最新兼容版本。


如果您发现自己必须为 .NET Framework >4.5 .NET 5 开发共享 PowerShell 组件,您可能希望利用 PowerShellStandard.Library package - 它是一个 .NET Standard 包,仅公开在 5.1(因此它适用于 .NET Framework 应用程序)和 6(因此它也适用于 .NET Core / .NET 5)中可用的 API 部分

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。