2013-08-27 7 views
2

J'ai un projet dans .NET 2.0 (appelons-le Projet A). Je voulais utiliser WCF, donc j'ai créé un autre projet (dans .NET 3.0, appelons-le Projet B) où j'ai mis toute la logique WCF, donc tout ce que je fais dans mon projet A appelle une méthode de la classe du projet B. Quand je ajouter la référence au projet B, le projet A ne le voit pas et j'obtiens des avertissements:Comment puis-je utiliser la classe .net 3.0 dans un projet .net 2.0?

La référence principale "Project B/Some.dll" n'a pas pu être résolue car elle dépend indirectement de l'assemblage du système. .ServiceModel, Version = 3.0.0.0, Culture = neutre, PublicKeyToken = XXX "qui n'a pas pu être résolu dans le framework actuellement ciblé. ".NETFramework, Version = v2.0".

Comment puis-je faire ce travail?

Répondre

0

Oui, c'est parfaitement possible. Vous venez d'exposer les composants écrits dans 3.0 en tant qu'objets COM. L'application d'hébergement 2.0 les utilise simplement comme des objets COM et n'a aucune idée s'ils sont natifs, 2.0, 3.0 ou autres. COM est l'interface commune que les deux versions d'exécution doivent implémenter de manière identique.

0

Pour utiliser WCF (à l'exécution). NET 3 (ou mieux 3.5) devra être installé de toute façon. Changez donc ProjectA en cible 3 (ou 3.5).

+1

Il est installé. Je ne peux pas mettre à jour le projet A vers .NET 3.0 (si je pouvais il n'y aurait pas cette question;)) –

+0

@PeteMorrison voir l'historique des révisions (http://stackoverflow.com/posts/22246916/revisions) sur une question vous avez envoyé une modification suggérée –

0

Vous ne pouvez pas faire cela directement, vos projets ciblent différentes versions de .NET.

Ce que vous pouvez faire est de communiquer entre deux processus.

Faites de votre projet 3.0 un exécutable et autorisez-le à accepter un argument de ligne de commande qui appelle la méthode que vous voulez utiliser.

Dans votre projet 2.0, générez votre projet 3.0 en tant que nouveau Process avec les arguments de ligne de commande appropriés. Si nécessaire, écrivez au StandardOutput de votre projet 3.0 et lisez-le depuis votre projet 2.0.

Questions connexes