在vistal,Windows7,Windows Server 2008上自带了Powershell,但是默认都支持.Net2.0,如果要导入或运行一些高版本的代码,可能会报错。
如何让Powershell支持高版本的Framework呢?
方法1:添加配置文件
在C:WindowsSystem32WindowsPowerShellv1.0或者C:WindowsSysWOW64WindowsPowerShellv1.0中添加配置文件名为:Powershell.exe.config
内容如下:
< ?xml version="1.0"?>
方法2:修改注册表
修改注册表之前请备份,把 RuntimeVersion 从 v2.0.50727 改成 v4.0.30319。
HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1PowerShellEngine
推荐使用第一种方法。
修改完后重启Powershell控制台查看:
PS C:> [Environment]::OSVersion | ft -AutoSize Platform ServicePack Version VersionString -------- ----------- ------- ------------- Win32NT Service Pack 1 6.1.7601.65536 Microsoft Windows NT 6.1.7601 Service Pack 1 PS C:> [Environment]::Version Major Minor Build Revision ----- ----- ----- -------- 4 0 30319 261
当然如果你的系统是windows server 2012 或者 Windows 8 可能会默认已经支持.NET4或者.NET4.5了。
方法3: 修改.NET 运行时
使其默认以最高版本运行
reg add hklmsoftwaremicrosoft.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
reg add hklmsoftwarewow6432nodemicrosoft.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
本文链接: https://www.pstips.net/powershell-support-higher-version-dotnet.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
默认以最高版本运行的注册表补充“\”
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
RuntimeVersion为指定版本的注册表补充“\”+命令
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine /v RuntimeVersion /d v4.0.30319