2008-10-22 7 views
10

Comment peut-on obtenir Visual Studio 2005/2008 pour référencer les assemblys dans le GAC 64 bits au lieu du GAC 32 bits? Nous settin la platfom cible x64 et le compilateur jette l'erreur deVisual Studio reference x64 GAC

Error 2 Warning as Error: Assembly generation -- Referenced assembly 'System.Data.dll' targets a different processor Common

Error 3 Warning as Error: Assembly generation -- Referenced assembly 'mscorlib.dll' targets a different processor Common

Error 4 Assembly signing failed; output may not be signed -- The system cannot find the file specified. Common


changement 29 déc 08

Vous connaissez essayer Aaron Stebner's suggestions pour placer les ensembles 64 bits sur un endroit isolé (par exemple C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ GAC_64) et en créant des entrées supplémentaires dans le Registre comme HKLM \ SOFTWARE \ Microsoft.NETFramework \ AssemblyFolders \ GAC_64 ou HKLM \ SOFTWARE \ Microsoft.NETFramework \ v2.0.50727 \ AssemblyFoldersEx \ GAC_64 mais Visual Studio 2005 ne le récupère toujours pas ....

Répondre

0

Avez-vous défini la plate-forme x64 pour tous les projets de votre solution dans Configuration Manager?

+0

Oui mais ce n'est pas grave. Ce sont les assemblages BCL que les projets référencent comme System.Data.dll et mscorlib.dll. Ils référencent les assemblages dans le GAC 32 bits. Serait bien d'avoir l'option de référencer le GAC 64 bits à la place. – icelava

2

Je ne sais pas pourquoi vous devriez faire cela. Le code .NET qui n'est pas spécifiquement compilé pour 32 bits s'exécutera 64 bits s'il le peut. Cela inclut les bibliothèques de framework de base. En bref, il n'y a aucune raison que je sache pour compiler vos assemblys spécifiquement pour 64 bits (autre que référencer des dll 64 bits non gérés, mais vous parlez du GAC).

Plus d'informations pourraient aider ici.

+0

Oui, nous sommes en train de compiler notre application pour cibler spécifiquement x64. Et à cause de cela, le compilateur se plaint que System.Data ou mscorlib sont en train de cibler x86 ..... – icelava

+0

Avez-vous refait les références affectées après avoir changé la cible de compilation dans les propriétés du projet? – sliderhouserules

+0

"Considérons une application .NET qui est un code de sécurité de type 100% Dans ce scénario, il est possible de prendre votre exécutable .NET que vous exécutez sur votre ordinateur 32 bits et de le déplacer vers le système 64 bits pour le faire fonctionner correctement. Puisque l'assemblage est sûr à 100%, nous savons qu'il n'y a pas de dépendances sur le code natif ou les objets COM et qu'il n'y a pas de code 'non sécurisé' ce qui signifie que l'application fonctionne entièrement sous le contrôle du CLR. " - MSDN –

0

J'ai créé un outil totalement gratuit qui vous aidera à atteindre votre objectif. Muse VSReferences vous permettra d'ajouter une référence de Global Assembly Cache au projet à partir de l'élément de menu Add GAC Reference.