2009-06-29 7 views
26

Ho 1 DLL nel .Net 3.5 framework e un altro in 2.0. La classe ListBoxItem esiste in 2.0 e ho collegato la classe nella DLL 3.5 nello stesso spazio dei nomi.Il tipo <type> esiste in entrambe le DLL

Quando provo a compilare, viene visualizzato un errore "esiste in entrambi". Come posso compilare questo e mantenere la stessa struttura.

Non voglio fare riferimento alla DLL 2.0 a 3.5 per eliminare questo problema, voglio mantenere queste DLL separate.

risposta

5

Questa non sembra una buona idea, non importa cosa, ma cambia lo spazio dei nomi e qualifica pienamente i tuoi usi.

In caso contrario, perché non si fa riferimento a una sola DLL?

+0

Se cambio spazi dei nomi, queste 2 DLL non possono essere utilizzate nello stesso metodo perché hanno 2 diverse firme. – pedrofernandes

+0

Non voglio istanza 2.0 dll in 3.5 dll perché 2.0 dll hanno grandi riferimenti aggiunti e quando lo compilo compile il mio 3.5, 2.0 dll più tutte le dll referenziate in 2.0, per quello che posso avere 15 dll quando posso avere solo 2 dlls nella mia cartella bin. – pedrofernandes

+0

Hai bisogno di rielaborare l'inglese negli ultimi messaggi di coppia. Non ho idea di cosa stai dicendo. Forse basta fare una dll? –

2

Suddividerli in due diverse soluzioni, una per .NET 2.0 e l'altra per .NET 3.5. Altrimenti, in che modo .NET sa come caricare quale?

+0

OK ce l'ho. Ma quando creo un progetto web con questo 2 dll di riferimento, commuta l'errore. – pedrofernandes

+0

Soluzioni! = Progetti. –

+0

Sì, è vero. mi ha preso in giro. – pedrofernandes

6

Questa è una soluzione rilevante pure, in cui è possibile definire quale tipo da utilizzare per le usings:

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

Non è possibile utilizzare nomi completi quando si tratta di metodi di estensione ed ecc

+0

È possibile utilizzare nomi completi per fare riferimento ai metodi di estensione, ma solo se li si chiama direttamente, anziché come ed estensione. –

2

Vecchio thread ma si desidera aggiungere in un'altra istanza in cui si è verificato questo problema. È stato delaing con un progetto che è stato convertito dal sito Web all'applicazione Web in Visual Studio 2010. Ho iniziato a ottenere il tipo "classe" esistente in entrambi .../ASP.NET temporaneo/... yada ... yada ... bla.

Nel mio caso, la vecchia pagina utilizzava un datagrid per visualizzare un elenco di date ma il set di dati era un elenco di classi List<MyClass> e il codice nel .aspx (non codice retrostante) utilizzava la metodologia di fusione dell'elemento di dati per visualizzare ...

Per qualche motivo, MyClass ha attivato l'errore di tipo. Dopo aver fatto la ricerca completa in tutto il progetto per eventuali riferimenti di doppia classe e simili, non ho trovato nulla in modo sostanzialmente deciso per vedere se mi sono sbarazzato del cast e basta andare con il metodo standard per ottenere il valore dal DataItem come segue:

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

E voilà ... non esiste più alcun errore di tipo. Non troppo sicuro perché questo causerebbe l'errore precedente di manifestarsi (e se qualcuno ha qualche intuizione, sarebbe apprezzato), ma il problema è andato ...

Spero che questo aiuti qualcuno ...

Dave

Problemi correlati