Running PowerShell 2.0 on .NET 4.0
Attempting to use
Add-Type to load a .NET assembly in PowerShell this afternoon, I got the following error:
This assembly is built by a runtime newer than the currently loaded runtime
By default, PowerShell 2.0 runs using the v2.0 .NET runtime, and my assembly is built against .NET 4.0. To get this to work, we need to persuade PowerShell to run on .NET 4.0
Note that PowerShell 3.0 uses the .NET 4.0 runtime, so you don’t need to do anything.
The best way to do this is the second answer
on this Stack Overflow question. In short, you add a
PowerShell.exe.config file that loads .NET 4.0.
You can check that this has worked by looking at the
$PSVersionTable.CLRVersion variable in PowerShell.