2010-03-14 4 views

risposta

7

Anche se è compilato per .NET 3.5, l'assembly dovrebbe essere in grado di funzionare in .NET 4. Ecco un bel picture.

+0

Beh, lo fa solo quando il framework di destinazione del progetto è impostato su .NET 4.0. Senza questo ottengo l'errore con il messaggio: L'assembly di riferimento "Ninject" non può essere risolto perché ha una dipendenza da "System.Web, Versione = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" che non è nel target correntemente selezionato framework ".NETFramework, Version = v4.0, Profile = Client". Rimuovi i riferimenti agli assembly non presenti nel framework di destinazione o considera il retargeting del tuo progetto. – mgamer

+1

Sembra che si stia utilizzando una versione di Ninject compilata con .NET 4 in un progetto con .NET 3.5. Non è possibile. Scarica una versione di Ninject che è compilata con .NET 3.5. –

+0

Il problema di System.Web è che sta utilizzando il profilo client che non ha la DLL disponibile. Ninject di default compila contro System.Web.dll. Puoi compilarlo con l'opzione NO_WEB se vuoi. –

13

Avevo un problema simile ... provare a utilizzare il .NET Framework completo, non il profilo del client.

Da quanto ho capito, System.Web è in .NET 4, ma non in .NET 4 Client Profile. Quindi per i vostri assembly, in cui state sfruttando il pieno Ninject compilato su 3.5 sp1, dovrete assicurarvi che non stiano indirizzando il profilo a .NET 4 Client ma il profilo .NET completo per la dipendenza da System.Web essere soddisfatti.

+0

Sì. In questo modo funziona. +1 – rem