我正在更新一个PowerShell脚本,该脚本管理一些.NET程序集.该脚本是为根据生成的程序集编写的.NET 2(与PowerShell运行的框架版本相同),但现在需要使用.NET 4程序集以及.NET 2程序集.
由于.NET 4支持运行针对旧版本的框架构建的应用程序,因此当我需要在.NET 4程序集上运行PowerShell时,似乎最简单的解决方案是使用.NET 4运行时启动PowerShell.
我怎样才能用它运行PowerShell.NET4运行时?
我正在更新一个PowerShell脚本,该脚本管理一些.NET程序集.该脚本是为根据生成的程序集编写的.NET 2(与PowerShell运行的框架版本相同),但现在需要使用.NET 4程序集以及.NET 2程序集.
由于.NET 4支持运行针对旧版本的框架构建的应用程序,因此当我需要在.NET 4程序集上运行PowerShell时,似乎最简单的解决方案是使用.NET 4运行时启动PowerShell.
我怎样才能用它运行PowerShell.NET4运行时?
发动机在空气中运转良好.NET 4.0.PowerShell(console主机和ISE)没有,只是因为它们是针对旧版本的进行编译的.网有一个注册表设置将为change the .NET framework loaded 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的.NET4.0应用程序,但这些步骤将有助于使开箱即用的PowerShell主机在.NET4.0下工作.
Remove the registry keys when you don't need them any more. These are machine-wide keys and forcibly migrate ALL applications to .NET 4.0, even applications using .net 2 and .net 3.5个