2010-04-22 9 views
2

Je voudrais utiliser le même projet (bibliothèque de classes) dans Silverlight et WPF. Donc, j'ai commencé comme une bibliothèque de classes Silverlight. Mais le problème est: certaines des classes communes (c'est-à-dire Point, TouchAction) existent dans différents assemblys et le compilateur affiche l'erreur suivante lorsque j'ajoute la référence de la bibliothèque de classes Silverlight au projet WPF.Comment réutiliser des projets Silverlight dans WPF?

Le type 'System.Windows.Point' existe dans 'c: \ Program Files \ Reference Assemblies \ Framework Microsoft \ \ Silverlight \ v4.0 \ System.Windows.dll' et « C: \ Program Files \ Assemblys de référence \ Microsoft \ Framework.NETFramework \ v4.0 \ WindowsBase.dll '

Quelqu'un peut-il suggérer une solution?

Répondre

2

Vous pouvez Prism 2.0 approche:

ont deux projets sepparated, mais lien fichiers d'un à l'autre. Les pièces spécifiques à une plate-forme peuvent être séparées dans une compilation conditionnelle (#ifdef _SILVERLIGHT ... #elseif ... #end)

Consultez le guide de démarrage rapide pour plus de détails (bien que tous les Quickstarts plus l'implémentation de référence aient Silverlight & Versions WPF, l'exemple multitarget est le plus simple si vous souhaitez uniquement partager du code entre plates-formes. Dans le même projet, vous trouverez l'outil Project Linker (bien qu'il ne fonctionne que sur VS2008 à ma connaissance) qui synchronise automatiquement deux projets ou plus en ajoutant des liens automatiquement lorsque de nouveaux éléments sont ajoutés au projet source .

Espérons que cela aide!

+1

Quand j'ai lu la question, je pensais que vous proposiez Prism pour résoudre le problème. Mais au second regard, je vois ce que vous dites. C'est une bonne suggestion. Téléchargez la source Prism et regardez la façon dont ils l'ont résolu. J'ai utilisé cette méthode et cela fonctionne bien. – Josh

Questions connexes