Принудительное выполнение 32-битной версии (из пакета, включающего установщики x86 и x64) на 64-битной машине

Я работаю над решением, состоящим из нескольких проектов (включая некоторые внешние сторонние библиотеки). Решение имеет setup project, который устанавливает (нестандартные) предварительные условия, которые по умолчанию идут с x86 а также x64 версии (вместе в 1 обязательное условие). Проекты в рамках решения имеют целевую платформу, установленную на x86 (в свойствах проекта, а не в селекторе конфигурации) из-за BadImageFormatExceptionИз неизвестного источника.

Моя проблема в том, что когда я использую установщик на 64-битной машине, устанавливается 64-битная версия пререквизита, что приводит к ошибкам, говорящим, что я должен использовать правильную (то есть x86) версию пререквизита.

Мне было интересно, смогу ли я вызвать конкретную версию предварительных условий с помощью проекта установки.

РЕДАКТИРОВАТЬ / ОБНОВИТЬ: Поскольку мой вопрос, кажется, вызывает много путаницы, я решил опубликовать 2 скриншота, которые, надеюсь, объяснят больше.

==>

Это включает в себя оба пакета, и я не знаю, как их разделить. Что касается ошибки, это общая ошибка для несоответствия версий программного обеспечения (что-то в строках "Пожалуйста, установите соответствующий распространяемый Crystal Reports (CRRedist*.msi), содержащий правильную версию среды выполнения Crystal Reports (x86, x64 или Itanium)". требуется. "). К сожалению, я не могу сделать снимок экрана с ошибкой, так как некоторое время у меня не будет доступа к "чистому" компьютеру. Я получаю это, если я использую 64-битный распространяемый пакет (потому что проект, который использует его, 32-битный), я не получаю его, если я так эффективно использую 32-битный распространяемый пакет, если я могу заставить установщик выбрать 32-битный пакет, моя проблема решено

1 ответ

Решение

Этот вопрос остается без ответа, по существу.

Я решил свою проблему, найдя библиотеку 1, которая была построена для 32-битной платформы (без особой причины, как выясняется), и перестроив ее с целевой платформой, настроенной на "Любой процессор" (так же, как и остальная часть проекта), что, в свою очередь, позволило мне использовать 64-битный распространяемый пакет, который выбирается автоматически (вместо форсированного 32-битного, как я изначально предполагал).

Ответом на этот вопрос является команда PowerShell, которая проверяет информацию о сборке (и целевую архитектуру ЦП), что я и использовал для проверки каждой из вечных библиотек в моем проекте и поиска той, которая построена как x86.

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