Почему мой хост PowerShell работает как 32-разрядный на 64-разрядном компьютере?

Я создаю хост PowerShell в VS 2012, в настоящее время в консольном проекте C# (.NET 4.5). Проект настроен для любого процессора, и "Предпочитать 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?

1 ответ

Решение

По случайности я попытался установить флажок "Предпочитать 32-разрядный", сохранить проект, затем отменить его и снова сохранить проект. После этого он построен как 64-битный. Для информации, это Visual Studio 2012 Обновление 2 (11.0.60315.01).

Другие вопросы по тегам