Настройте клиент WPF для запуска 64-битных - PullRequest
4 голосов
/ 20 февраля 2012

У нас есть некоторый код, который использует Entity Framework для базы данных DB2.

Когда мы пытаемся использовать область транзакции, мы получаем сообщение «Подлежащий поставщик не удалось открыть».

  • Эта ошибка появляется только при запуске из клиента WPF.
  • Мы не получаем эту ошибку при запуске из модульного теста.
  • Поставщик DB2 - 64-битный

Разница, которую мы смогли найти, заключается вчто модульный тест настроен как Любой ЦП, но проект WPF настроен как x86.

Проблема состоит в том, что пользовательский интерфейс Visual Studion не позволяет нам выбирать что-либо, кроме x86, для проекта WPF.

Это ограничение проектов WPF?Если нет, то как мы настраиваем проект WPF как Любой ЦП?

Ответы [ 4 ]

8 голосов
/ 20 февраля 2012

Возможно, вы путаете Visual Studio C # Platform с целью Platform ?

Каждый проект Visual Studio C # может быть построен на одной из нескольких платформ.Это позволяет использовать один и тот же проект для сборки на нескольких аппаратных платформах, таких как 32- и 64-разрядные процессоры Intel / AMD или даже на других процессорах, таких как Itanium.

Однако при создании нового проекта он будет по умолчанию толькосодержать одну платформу, и в вашем случае вы также хотите собрать только одну платформу, то есть x64.Для новых проектов Visual Studio использует следующие платформы:

  • Проект библиотеки (включая тестовый проект) будет иметь платформу Any CPU .
  • AnИсполняемый проект (включая проект WPF) будет иметь платформу x86 .

Что немного сбивает с толку, так это то, что эти платформы - просто названия, намекающие на то, что на самом деле построено.Вы управляете тем, что испускает компилятор на вкладке Build настроек проекта.Здесь вы можете установить для Platform target такие значения, как Любой ЦП , x86 или x64 .

. У вас будетдля установки цели Platform на x64 в вашем проекте WPF.

Visual Studio C# project settings

Для полной настройки ваших платформ вам придется использовать Диспетчер конфигурации , который находится в меню Сборка -> Диспетчер конфигурации .

1 голос
/ 20 февраля 2012

Единственной x86, которую я не смог изменить, была Платформа, которая, честно говоря, я понятия не имею, что это такое. но, как вы видите, я могу выбрать x64 в качестве цели платформы, вы уверены, что у вас нет такой опции?

enter image description here

1 голос
/ 20 февраля 2012

Нет такого ограничения. Вы можете выбрать цель в выпадающем списке Platform Target на странице сборки свойств проекта

0 голосов
/ 27 апреля 2017

Решение этой проблемы очень простое. Мы скопировали скопированную 64-битную консоль PowerShell.exe в папку отладки текущего проекта VisualStudio и предоставили тот же путь (. \ Debug RR. \ Debug) для запуска сценария powershell, и он работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...