小编典典

如何使用 .NET 4 运行时运行 PowerShell?

all

我正在更新管理一些 .NET 程序集的 PowerShell 脚本。该脚本是为针对 .NET 2(与 PowerShell
运行的框架版本相同)构建的程序集编写的,但现在需要使用 .NET 4 程序集以及 .NET 2 程序集。

由于 .NET 4 支持运行针对旧版本框架构建的应用程序,因此当我需要针对 .NET 4 程序集运行 PowerShell 时,似乎最简单的解决方案是使用
.NET 4 运行时启动 PowerShell。

如何使用 .NET 4 运行时运行 PowerShell?


阅读 92

收藏
2022-05-31

共1个答案

小编典典

PowerShell(引擎)在 .NET 4.0
下运行良好。PowerShell(控制台主机和ISE)不这样做,仅仅是因为它们是针对旧版本的
.NET 编译的。有一个注册表设置将 更改加载的 .NET 框架 systemwide ,这反过来将允许 PowerShell 使用 .NET
4.0 类:

reg add hklm\software\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
reg add hklm\software\wow6432node\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1

要仅更新 ISE 以使用 .NET 4.0,您可以将配置 ($psHome\powershell_ise.exe.config) 文件更改为具有如下块:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup>
      <supportedRuntime version="v4.0.30319" />
    </startup>
</configuration>

您可以使用 PowerShell API (System.Management.Automation.PowerShell) 构建调用 PowerShell
的 .NET 4.0 应用程序,但这些步骤将有助于使内置 PowerShell 主机在 .NET 4.0 下工作。


不再需要时删除注册表项。 这些是机器范围的密钥,并强制将所有应用程序迁移到 .NET 4.0,甚至是使用 .net 2 和 .net 3.5
的应用程序


2022-05-31