PowerShell (двигун) працює нормально під .NET 4.0. PowerShell (хост консолі та ISE ) цього не робить, просто тому, що вони були складені проти старих версій .NET. Існує параметр реєстру, який змінить завантажену систему .NET у всій країні , що, в свою чергу, дозволить 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>
Ви можете створити .NET 4.0 додатки, які викликають PowerShell за допомогою API PowerShell (System.Management.Automation.PowerShell) просто чудово, але ці кроки допоможуть змусити власні хости PowerShell працювати під .NET 4.0.
Видаліть ключі реєстру, коли вони вам більше не потрібні. Це загальномашинні клавіші і примусово переміщують ВСІ програми на .NET 4.0, навіть програми, що використовують .net 2 та .net 3.5