为什么我的PowerShell主机在64位计算机上以32位运行?

时间:2013-05-04 16:28:16

标签: powershell-hosting

我正在VS 2012中构建一个PowerShell主机,目前在C#(。NET 4.5)控制台项目中。该项目配置为任何CPU,并且未选中“首选32位”。我通过添加

手动添加了对System.Management.Automation的引用
    <Reference Include="System.Management.Automation" />

与.csproj文件中包含其他引用的ItemGroup。我从注册表中读取奇怪的行为(缺少键等),我意识到它正在查看x86部分。所以我在主机中运行了这个脚本:

if ([System.IntPtr]::Size -eq 4) 
{ 
    "32-bit"
}
else
{
    "64-bit"
}

然后回来了

"32-bit"
鉴于这种行为,这并不令人意外,但考虑到配置,这是一个惊喜。有人有任何想法吗?托管的PowerShell是否必须是x86?

1 个答案:

答案 0 :(得分:0)

在机会中,​​我尝试检查“首选32位”框,保存项目,然后取消选中并再次保存项目。在此之后,它构建为64位。有关信息,这是 Visual Studio 2012 Update 2(11.0.60315.01)。