我正在 VS 2012 中构建 PowerShell 主机,目前在 C# (.NET 4.5) 控制台项目中。该项目配置为任何 CPU,并且未选中“首选 32 位”。我通过添加手动添加了对 System.Management.Automation 的引用
<Reference Include="System.Management.Automation" />
到 ItemGroup 与 .csproj 文件中的其他引用。我从注册表中读取到奇怪的行为(缺少键等),我意识到它正在查看 x86 部分。所以我在主机中运行了这个脚本:
if ([System.IntPtr]::Size -eq 4)
{
"32-bit"
}
else
{
"64-bit"
}
然后回来了
"32-bit"
考虑到这种行为,这并不令人惊讶,但考虑到配置,这并不令人惊讶。有人有什么想法吗?托管的 PowerShell 有什么必须是 x86 的吗?