web-dev-qa-db-fra.com

Impossible de compiler vdproj avec devenv - 'ciblage' x64 'n'est pas compatible avec la plate-forme cible du projet' x86 ''

Ces dernières heures, je cherchais sur le Web, à la recherche de nombreuses informations relatives à mon problème, mais aucune d’elles ne les corrige réellement. 

Ma machine est en 64 bits avec Visual Studio 10 32 bits installé. La solution utilise .Net 4. La solution inclut l’installation de Crystal Reports 64 bits. La solution inclut également log4net. 

La compilation du projet dans VS2010 est acceptable pour Debug et Release, tous les processeurs.

J'ai ajouté un projet d'installation Web que je veux créer. Cependant, quelle que soit la configuration, les erreurs suivantes sont générées lors de la compilation (tant dans VS UI que sur la ligne de commande utilisant 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'

J'ai essayé de définir explicitement la configuration des projets sur x86 et x64, sans aucune modification. 

Quelqu'un peut-il me guider sur le bon chemin?

Edit - ajout d'une capture d'écran montrant que je suis incapable de choisir la plate-forme pour le projet d'installation.

enter image description here

26
sonstabo

Vous devez marquer le projet d'installation en tant qu'installateur 64 bits. La propriété TargetPlatform de votre projet d'installation dans la fenêtre Propriétés, remplacez-la de x86 (valeur par défaut) par x64.
Assurez-vous également de déployer la version 64 bits de log4net et que le paramètre TargetPlatform de votre projet C # est Tout processeur.
Et assurez-vous que vous avez réellement besoin votre application à exécuter en tant que processus 64 bits, ce qui est rare.

54
Hans Passant
  1. Ouvrez Deployment.vdproj, dans le Bloc-notes.
  2. Chaîne de recherche "TargetPlatform" = "3: 0"
  3. Passez à "TargetPlatform" = "3: 1" pour AMD64 ou "TargetPlatform" = "3: 2" pour Itanium.
  4. Enregistrer le fichier de déploiement.vdproj . Dans Visual Studio, vous ne voyez aucune modification, mais votre projet est maintenant AMD64.
16
Jan Maslov
  1. Ouvrez un projet de déploiement.
  2. Dans l'explorateur de solutions, sélectionnez le projet de déploiement.
  3. Dans la fenêtre Propriétés, sélectionnez la propriété TargetPlatform.
  4. Choisissez Itanium pour une plate-forme Intel Itanium 64 bits ou x64 pour toute autre plate-forme 64 bits (tels que les jeux d'instructions AMD64 et EM64T).
  5. Lors de l'installation, une erreur est générée et l'installation est interrompue si l'ordinateur cible n'est pas compatible avec la plate-forme spécifiée.
6
MOHAMED SAKR
  1. Allez dans le menu "Affichage" de Visual Studio et cliquez sur Propriétés Windows:

 enter image description here

  1. Sélectionnez le cadre cible x64 bits:

 enter image description here

3
  1. Ouvrez un projet de déploiement.
  2. Dans l'explorateur de solutions, sélectionnez le projet de déploiement.
  3. Dans la fenêtre Propriétés, sélectionnez la propriété TargetPlatform.
  4. Choisissez Itanium pour une plate-forme Intel Itanium 64 bits ou x64 pour toute autre plate-forme 64 bits (tels que les jeux d'instructions AMD64 et EM64T).

Lors de l'installation, une erreur est générée et l'installation est interrompue si l'ordinateur cible n'est pas compatible avec la plate-forme spécifiée.

1
Shailendra

Vous aurez peut-être besoin d'un service Windows x64 installé (think powershell) devant communiquer avec une application x86. Votre réponse (propriétés/TargetPlatform) m'a permis de surmonter cet obstacle. 

0
Mike Nahorniak

Ceci est pour Visual Studio 2010

Accédez à votre projet> clic droit et sélectionnez Properties.

Sous Compiler, accédez à Advanced Compile Options

Localisez Target CPU, puis soit 

sélectionnez x86 pour 32bit systems, x64 pour 64bit systems ou Any CPU

0
Mr.J

Mes projets .net 2010 incluent tous un projet d'installation x86 et x64. TargetPlatform pour mes projets est N'importe quel processeur et chaque projet d'installation a le bon - Spécifique CPU - TargetPlatform. Tout cela fait partie d'un "projet de base" .Net que je "clone" (copier puis éditer plusieurs fichiers avec NOTEPAD) dans un nouveau projet lorsque je commence le développement. A bien travaillé pendant des années.

J'ai rencontré cette erreur dans un nouveau projet et je n'ai trouvé aucune solution tant que je n'ai pas fait ce qui suit:

- 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

Changer les propriétés du projet >> Compiler >> Avancé pour autre chose que N'importe quel processeur et inversement semble avoir tourné l'astuce ........

0
jdw3rd