Невозможно скомпилировать vdproj с devenv - «таргетинг на x64» не совместим с целевой платформой проекта «x86» - PullRequest
26 голосов
/ 05 августа 2011

Последние несколько часов я искал в интернете, нашел много информации, связанной с моей проблемой, но ни один из них не помог.

Моя машина 64-битная с установленной 32-битной Visual Studio 10.В решении используется .Net 4. Решение включает 64-разрядную установку Crystal Reports.Решение также включает в себя log4net.

Компиляция проекта в VS2010 подходит как для отладки, так и для выпуска любого процессора.

Я добавил проект веб-установки, который хочу построить.Однако, независимо от конфигурации, я получаю следующие ошибки при компиляции (как в пользовательском интерфейсе VS, так и в командной строке с использованием devenv.exe):

ERROR: File 'CrystalDecisions.ReportAppServer.Prompting.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.Prompting.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.ObjectFactory.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.ObjectFactory.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.XmlSerialize.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.XmlSerialize.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.CommonObjectModel.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.CommonObjectModel.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.CommonControls.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.CommonControls.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.ReportDefModel.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.ReportDefModel.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'log4net.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'log4net.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.Controllers.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.Controllers.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.DataDefModel.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.DataDefModel.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.CubeDefModel.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.CubeDefModel.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.ClientDoc.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.ClientDoc.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'CrystalDecisions.ReportAppServer.CommLayer.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'CrystalDecisions.ReportAppServer.CommLayer.dll' targeting 'x64' is not compatible with the project's target platform 'x86'

Я пытался явно указать конфигурацию для проектов как x86и х64, без каких-либо изменений.

Может ли кто-нибудь направить меня в правильном направлении?

Изменить - добавлен снимок экрана, показывающий, что я не могу выбрать платформу для проекта установки.

enter image description here

Ответы [ 8 ]

54 голосов
/ 05 августа 2011

Вы должны пометить проект установки как 64-битный установщик. Свойство TargetPlatform вашего проекта установки в окне Свойства измените его с x86 (по умолчанию) на x64.
Также убедитесь, что вы развернули 64-битную версию log4net и что для вашего проекта C # TargetPlatform задано значение Любой процессор.
И убедитесь, что на самом деле нужно ваше приложение для запуска в качестве 64-битного процесса, это редко.

18 голосов
/ 18 января 2012
  1. Откройте файл Deployment.vdproj в Блокноте.
  2. Найти строку "TargetPlatform" = "3: 0"
  3. Изменить на "TargetPlatform" = "3: 1" для AMD64или "TargetPlatform" = "3: 2" для Itanium.
  4. Сохранить файл Deployment.vdproj.В Visual Studio вы не видите никаких изменений, но ваш проект теперь AMD64.
7 голосов
/ 21 декабря 2011
  1. Откройте проект развертывания.
  2. В обозревателе решений выберите проект развертывания.
  3. В окне свойств выберите свойство TargetPlatform.
  4. Выберителибо Itanium для 64-разрядной платформы Intel Itanium, либо x64 для любой другой 64-разрядной платформы (например, наборов инструкций AMD64 и EM64T).
  5. Во время установки возникает ошибка, и установка будет остановленаесли целевой компьютер не совместим с указанной платформой.
4 голосов
/ 03 февраля 2018
  1. Перейдите в меню «Вид» Visual Studio и выберите Свойства Windows:

enter image description here

  1. Выберите целевую платформу x64 бит:

enter image description here

1 голос
/ 02 февраля 2017
  1. Откройте проект развертывания.
  2. В обозревателе решений выберите проект развертывания.
  3. В окне свойств выберите свойство TargetPlatform.
  4. Выберителибо Itanium для 64-разрядной платформы Intel Itanium, либо x64 для любой другой 64-разрядной платформы (например, наборов инструкций AMD64 и EM64T).

Во время установки возникает ошибка, и при установкебудет остановлен, если целевой компьютер не совместим с указанной платформой.

0 голосов
/ 31 мая 2018

Все мои проекты .net 2010 включают в себя проект установки x86 и x64.TargetPlatform для моих Проектов - Любой ЦП, и каждый Проект Установки имеет правильный TargetPlatform, специфичный для ЦП.Все это является частью «базового» проекта .Net, который я «клонирую» (скопируйте, а затем отредактируйте несколько файлов с помощью NOTEPAD) в новый проект, когда я начну разработку.Прекрасно работал в течение многих лет.

Я столкнулся с этой ошибкой в ​​новом проекте и не нашел исправления, пока не сделал следующее:

- Open Project Properties >> Compile >> Advanced and set Target to x86
- "Build" x86 Setup Project
    - Build Success
- Changed Project Properties >> Compile >> Advanced Target to x64
- "Build" x64 Setup Project
    - Build Success
- Changed Project Properties >> Compile >> Advanced Target to Any CPU
- Build x86 Setup Project
    - Build Success
- Build x64 Setup Project
    - Build Success

Изменение свойств проекта >> Компиляция >>что-то, кроме Any CPU и обратно, похоже, сработало ........

0 голосов
/ 03 мая 2018

Это для Visual Studio 2010

Перейдите в свой проект> Щелкните правой кнопкой мыши и выберите Properties.

В разделе «Компиляция» перейдите к Advanced Compile Options

Найти Target CPU, затем либо

выберите x86 для 32bit systems, x64 для 64bit systems или Any CPU

0 голосов
/ 02 апреля 2013

Вам может понадобиться установленная служба Windows x64 (например, powershell), которая должна взаимодействовать с приложением x86.Ваш ответ (свойства / TargetPlatform) преодолел это препятствие.

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