2010-10-15 6 views
2

Existe-t-il un moyen de procéder?Ajout d'une référence à une bibliothèque .net (dll) à partir d'un projet Silverlight

J'ai une bibliothèque avec le code 'helper' que je veux utiliser à partir d'un projet Silverlight. Je ne sais pas pourquoi, mais Visual Studio ne me laisse pas ajouter la référence même s'il n'y a rien d'interdit dans ma bibliothèque (comme DataSets)

Je ne veux pas écrire tout ce code encore, donc je pensais peut-être créer une bibliothèque de classe Silverlight et ajouter mes classes en tant que liens vers ce projet.

Je sais que cela fonctionne pour d'autres choses, ne l'avez pas encore essayé dans Silverlight, y a-t-il un problème avec cette approche? Y a-t-il un meilleur moyen de réaliser ce que je veux?

Répondre

2

Il ne devrait pas y avoir de problème avec cette approche. En fait, Prism fait un usage intensif des fichiers liés (en combinaison avec les directives du pré-processeur) pour supporter à la fois WPF et Silverlight par la bibliothèque.

De plus, vous pouvez utiliser l'outil Project Linker pour vous aider.

J'espère que cela aide.

1

Non, vous ne pouvez pas ajouter un assemblage .net, vous devez recompiler la bibliothèque pour silverlight.

Vous pouvez créer une nouvelle bibliothèque de classes Silverlight vide, dans le même répertoire que la bibliothèque de classes .net. Ensuite, choisissez "Afficher tous les fichiers" dans le menu du projet. Ensuite, tous les fichiers .cs de ce dossier seront transparents dans l'explorateur de solution. Sélectionnez-les et choisissez "Inclure dans le projet" dans le menu contextuel.

Il pourrait même être possible de simplement utiliser un projet avec plusieurs versions (comme Debug et Release dont certaines cibles SL), mais je ne suis pas sûr que cela soit possible. Cela aurait l'avantage de ne pas avoir à synchroniser les fichiers du projet manuellement.

+0

Je sais que je ne peux pas, c'est ce que je dis ... Je veux juste utiliser les classes de ma lib dans une lib Silverlight comme liens et ajouter cette lib comme référence – sebagomez

+0

@seb - la distinction entre * réécriture * et * reconstruction * est plutôt importante. –

+0

@hans la réponse n'était pas complète quand j'ai entré ce commentaire ... maintenant il dit ce que j'avais besoin de savoir, merci – sebagomez

1

Il n'y a pas de problème avec cette approche. MEF, par exemple, a fait cela. Vous y trouverez deux ensembles de projets - un projet desktop et un projet silverlight, chacun se référant aux mêmes fichiers .cs.

Une bonne chose à aider, aussi bien - s'il y a des fonctionnalités non-silverlight, ou des fonctionnalités spécifiques à SL dont vous avez besoin dans vos classes, vous pouvez utiliser des classes partielles pour gérer ces cas. Mettez juste inclure le deuxième fichier .cs dans les projets appropriés, et utilisez des classes partielles, et vous pouvez séparer la fonctionnalité normal/sivlerlight.

Questions connexes