Ho una soluzione che ha tre strati: comuni, dati e attivitàservizio e Project miscelazione Referenze
Lo strato comune definisce gli oggetti che sono essere referenziate e utilizzati da altri strati. Il livello dati contiene il codice di accesso ai dati e il livello aziendale contiene la logica aziendale. Ogni livello contiene più progetti.
I livelli di dati e di business espongono i servizi WCF che hanno oggetti dal livello comune come parametri. Sia i dati che i livelli aziendali fanno riferimento allo strato comune direttamente tramite i riferimenti del progetto.
Il livello aziendale fa riferimento al livello dati tramite un riferimento di servizio. I riferimenti del servizio sono impostati su "Riutilizza i tipi negli assiemi di riferimento" poiché esistono più riferimenti ai servizi del livello dati in un singolo progetto del livello aziendale e ciascuno dei servizi del livello dati utilizza gli stessi oggetti dal livello comune.
Sto scrivendo unit test per il livello aziendale e sto ricevendo continuamente errori come questo: Valore di tipo Common.ClassName non può essere convertito in Common.ClassName. La mancata corrispondenza di tipo potrebbe essere dovuta al mixaggio di un riferimento di file con un riferimento di progetto all'assembly Common. Prova a sostituire il riferimento del file con un riferimento al progetto.
Non è un riferimento di file, è sicuramente un riferimento di progetto. Looking here I see this item
Per accedere a un tipo definito in un altro assieme, il compilatore di Visual Basic deve avere un riferimento a tale assembly. Questo deve essere un riferimento unico e non ambiguo che non causa riferimenti circolari tra i progetti.
Per quanto mi riguarda posso dire che non ho alcun riferimenti circolari in modo da quali altri problemi potrebbero causare questo messaggio di errore e/o come posso evitare questo spreco di così tanto del mio tempo facendo clic sul riferimento al servizio di aggiornamento e sperando che questa volta funzionerà?
Nota che non ho una scelta su questa architettura, è imposta dal nostro architetto del software.
L'ambiente è Windows 8 con Visual Studio 2012.
Solo per assicurarsi che non ci siano riferimenti circolari. Assembly (A) delle DLL non ha un riferimento a Assembly (B) che dipende da Assembly (C) in fase di compilazione, ma Assembly (C) ha un riferimento a Assembly (A) .... – Skindeep2366
Ho controllato per riferimenti circolari più volte. Sono abbastanza sicuro che non è questo il problema. –