2009-06-29 5 views
26

J'ai 1 DLL dans le framework .Net 3.5 et une autre dans la version 2.0. La classe ListBoxItem existe dans 2.0 et j'ai lié la classe dans la DLL 3.5 dans le même espace de noms.Le type <type> existe dans les deux DLL

Lorsque j'essaie de compiler, j'obtiens une erreur "existe dans les deux". Comment puis-je compiler ceci et maintenir la même structure.

Je ne veux pas référence la DLL 2.0 à 3.5 pour éliminer ce problème, je veux garder ces DLL séparées.

Répondre

5

Cela ne semble pas être une bonne idée, peu importe quoi, mais changez les espaces de noms et qualifiez pleinement vos usages.

Sinon, pourquoi ne pas simplement référencer une DLL?

+0

Si je change d'espaces de noms, ces 2 dll ne peuvent pas être utilisés dans la même méthode car ils ont 2 signatures différentes. – pedrofernandes

+0

Je ne veux pas instance 2.0 dll dans 3.5 dll parce que 2.0 dll ont de grandes références ajoutées et quand je compile il compile mon 3.5, 2.0 dlls plus toutes les DLL référencées dans 2.0, pour ce que je peux avoir 15 dlls quand je peux avoir seulement 2 dlls im mon dossier bin. – pedrofernandes

+0

Vous devez retravailler l'anglais dans les derniers billets. Je n'ai aucune idée de ce que vous dites. Peut-être juste faire tout un dll? –

2

Divisez-les en deux solutions différentes, l'une pour .NET 2.0 et l'autre pour .NET 3.5. Sinon, comment .NET sait comment charger lequel?

+0

OK, je l'ai. Mais quand je crée un projet web avec ces 2 dll référencés, des erreurs arrivent. – pedrofernandes

+0

Solutions! = Projets. –

+0

Oui c'est vrai. m'a berné. – pedrofernandes

6

Ceci est une solution pertinente et où vous pouvez définir le type à utiliser dans vos usings:

https://stackoverflow.com/a/9194582/178620

Vous ne pouvez pas utiliser des noms qualifiés en traitant des méthodes et etc. Extension

+0

Vous pouvez utiliser des noms complets pour faire référence aux méthodes d'extension, mais uniquement si vous les appelez directement, plutôt que sous et comme extension. –

2

Ancien thread mais souhaitait ajouter dans une autre instance où ce problème s'est produit. Était delaing avec un projet qui a été converti à partir d'un site Web en application Web dans Visual Studio 2010. J'ai commencé à obtenir le type "classe" existe à la fois .../temporaire ASP.NET/... yada ... yada ... Yada. Dans mon cas, l'ancienne page utilisait une grille de données pour afficher une liste de dates mais l'ensemble de données était une liste de classes List<MyClass> et le code dans le fichier .aspx (pas le code derrière) utilisait la méthodologie de moulage de l'élément de données pour l'affichage ...

<%# ((MyClass)Container.DataItem).MyDate %> 

Pour une raison quelconque, MyClass a déclenché l'erreur de type. Après avoir fait toute la recherche dans le projet pour d'éventuelles références de classe double et autres, je n'ai rien trouvé de fondamentalement décidé de voir si je me suis débarrassé de la distribution et de suivre la méthode standard pour obtenir la valeur du DataItem comme suit:

<%# DataBinder.Eval(Container.DataItem, "MyDate").ToString()%> 

Et voilà ... plus le type n'existe erreur. Pas trop sûr pourquoi cela causerait l'erreur ci-dessus se manifeste (et si quelqu'un a une idée, il serait apprécié) mais le problème est allé ...

Hope this helps quelqu'un ...

Dave

Questions connexes