0

J'ai un projet Visual Studio 2010 qui publie un assembly appelé myAssembly.ddl. Je veux ensuite faire référence à myAssembly.dll à partir d'un projet existant par rapport à 2008. Si j'essaie de charger la référence, elle est accompagnée d'un point d'exclamation jaune, suggérant que l'assemblage n'a pas été chargé. Cependant, je ne reçois aucun message d'erreur pendant ce processus. Évidemment, si j'essaie d'importer l'espace de noms dans mon code, il ne compile pas.L'assembly référencé ne chargera pas

La conversion de myAssembly.dll en .net version 3.5 ne vous aide pas. Il ne copie pas non plus l'assembly dans un répertoire différent et le référence à partir de là.

Des idées?

Répondre

4

Quel framework .NET utilisez-vous pour créer la solution dans Visual Studio 2008?

Il doit être la version 3.5 afin de vous permettre d'utiliser le fichier myAssembly.dll que vous avez compilé avec le framework 3.5. Visual Studio 2008 vous permettra de cibler le Framework 2.0 ou même le Framework 3.0.

Visual Studio 2008

Projet> Propriétés> onglet Application Look pour Framework cible

+0

Les deux projets sont définis sur 3.5. Je suppose que l'information dont vous parlez se trouve sous l'onglet Compiler dans la fenêtre Advanced Compile Options. – Pavel

+0

En fait, j'ai oublié de vérifier dans mon projet modifié. C'est maintenant référençant l'ensemble correctement. – Pavel

2

Je reçois repro pour cela. Il est visible dans Ildasm.exe, le compilateur 2010 marque les métadonnées comme v4.0.30319. Vous pouvez aussi le voir avec Corflags.exe. Le système de construction 2008 génère un avertissement pour cela, vous pouvez le voir dans la fenêtre de sortie:

avertissement MSB3246: fichier Résolu a une mauvaise image, pas de métadonnées, ou est autrement inaccessible

La modification du Target Framework en 3.5 corrige le problème, l'assembly sera maintenant marqué comme v2.0.50727, la version CLR utilisée en 2005 et 2008. L'IDE n'est cependant pas assez intelligent pour détecter ce changement. Vous devrez supprimer la référence d'assemblage, puis la remettre en place. Et le point d'exclamation jaune n'est plus là.

Questions connexes