Impossible de compiler vdproj avec devenv - 'targeting' x64 ' n'est pas compatible avec la plate-forme cible du projet 'x86"
J'ai cherché sur le web ces dernières heures, trouvant beaucoup d'informations liées à mon problème - mais aucune ne les corrige réellement.
Ma machine est 64 bits avec un Visual Studio 10 32 bits installé. La Solution utilise. Net 4. La Solution comprend l'installation 64 bits de Crystal Reports. Solution comprend également log4net.
La Compilation du projet dans VS2010 est OK pour le débogage et la libération, tout cpu.
J'ai ajouté un projet de configuration Web que je veux construire. Cependant, quelle que soit la configuration, j'obtiens les erreurs suivantes lors de la compilation (à la fois dans VS UI et en ligne de commande en 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 la bonne voie?
Edit-ajout d'une capture d'écran montrant que je ne peux pas choisir la plate-forme pour le projet d'installation.
8 réponses
Vous devez marquer le projet D'installation comme un programme d'installation 64 bits. La propriété TargetPlatform
de votre projet D'installation dans la fenêtre Propriétés, remplacez-la par x86 (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 N'importe quel processeur.
Et assurez-vous que vous avez réellement besoin de votre application pour fonctionner en tant que processus 64 bits, c'est rare.
- Déploiement Ouvert.vdproj, dans le bloc-notes.
- Trouver la chaîne "TargetPlatform" = "3:0"
- Changez pour "TargetPlatform" = "3: 1" pour AMD64, ou "TargetPlatform" = "3: 2" pour Itanium.
- Enregistrer Le Déploiement.vdproj. Dans Visual Studio, vous ne voyez aucun changement, mais votre projet maintenant AMD64.
- Ouvre un projet de déploiement.
- Dans l'Explorateur de solutions, sélectionnez le projet de déploiement.
- dans la fenêtre Propriétés, sélectionnez la propriété TargetPlatform.
- Choisissez Itanium pour une plate-forme 64 bits Intel Itanium ou x64 pour toute autre plate-forme 64 bits (comme les jeux D'instructions AMD64 et EM64T).
- au moment de l'installation, une erreur sera déclenchée et l'installation sera arrêtée si l'ordinateur cible n'est pas compatible avec plate.
- Ouvre un projet de déploiement.
- Dans l'Explorateur de solutions, sélectionnez le projet de déploiement.
- dans la fenêtre Propriétés, sélectionnez la propriété TargetPlatform.
- Choisissez Itanium pour une plate-forme 64 bits Intel Itanium ou x64 pour toute autre plate-forme 64 bits (comme les jeux D'instructions AMD64 et EM64T).
Au moment de l'installation, une erreur sera déclenchée et l'installation sera arrêtée si l'ordinateur cible n'est pas compatible avec plate.
- Allez dans le menu "Affichage" de Visual Studio et cliquez sur Propriétés Windows:
- Sélectionnez le cadre cible x64 bit:
Vous devrez peut-être installer un service Windows x64 (pensez powershell) qui doit communiquer avec une application x86. Votre réponse (properties / TargetPlatform) m'a permis de surmonter cet obstacle.
Ceci est pour Visual Studio 2010
Allez dans votre projet > Faites un clic droit et sélectionnez Properties
.
Sous compiler, allez à Advanced Compile Options
Localisez Target CPU
, puis
Select x86
pour 32bit systems
, x64
pour 64bit systems
ou Any CPU
Mes projets. net 2010 incluent tous un projet D'installation x86 et x64. La TargetPlatform pour mes projets est N'importe quel CPU et chaque projet D'installation a la TargetPlatform spécifique au CPU. Tout cela fait partie d'un projet.net" de base "que je" clone " (copie puis édite plusieurs fichiers avec le bloc-notes) dans un nouveau projet lorsque je commence le développement. A travaillé très bien pendant des années.
J'ai rencontré cette erreur dans un nouveau projet et n'ai trouvé aucun correctif jusqu'à ce que je fasse 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
Modification les propriétés du projet > > compiler > > avancé à autre chose que N'importe quel CPU et retour semble avoir tourné l'affaire........