PowerShell (engine) bekerja dengan baik di bawah .NET 4.0. PowerShell (host konsol dan ISE ) tidak, hanya karena mereka dikompilasi dengan versi .NET yang lebih lama. Ada pengaturan registri yang akan mengubah .NET dimuat kerangka sistem , yang pada gilirannya akan memungkinkan PowerShell untuk menggunakan .NET 4.0 kelas:
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
Untuk memperbarui hanya ISE untuk menggunakan. NET 4.0, Anda dapat mengubah file konfigurasi ($ psHome \ powershell_ise.exe.config) untuk memiliki chunk seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0.30319" />
</startup>
</configuration>
Anda dapat membangun aplikasi .NET 4.0 yang memanggil PowerShell menggunakan PowerShell API (System.Management.Automation.PowerShell) baik-baik saja, tetapi langkah-langkah ini akan membantu membuat host PowerShell dalam-kotak untuk bekerja di bawah .NET 4.0.
Hapus kunci registri ketika Anda tidak membutuhkannya lagi. Ini adalah kunci di seluruh mesin dan secara paksa memigrasi SEMUA aplikasi ke .NET 4.0, bahkan aplikasi menggunakan .net 2 dan .net 3.5