我已经安装了 PowerShell v3 的发行版,但在使 -Version 参数正常工作时遇到了一些麻烦。我有很多需要 .NET 4.0 的模块,并且我一直在使用 PowerShell v2,使用以下 powershell.exe.config 文件没有问题:
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>
这将允许我使用 .NET 4.0 CLR 运行 PowerShell v2。一切正常。
我现在已经安装了 PowerShell v3 的发布版本,并且每当我使用命令“powershell -version 2”并检查$PSVersionTable
变量时,它显示它已经加载了 PowerShell v3(使用 .NET 4.0)。如果我删除powershell.exe.config
上面的文件并运行相同的命令,则表明 PowerShell v2 已加载但正在使用 .NET 2.0。
所以我的问题是:有没有办法像我在安装 PowerShell v3 之前那样加载 PowerShell v2 并让它使用 .NET 4.0 CLR?还是 PowerShell v3 不允许这样做?
另外,我应该提一下我为什么要这样做 - 主要是为了以防我们切换到 V3 时可能会出现任何不兼容问题。我计划使用 V3 测试所有内容,但是能够回退到 V2 可以让我们免于很多麻烦。