2010-04-01 15 views
8

Abbiamo due progetti che sono entrambi librerie di classi. Project 1 è un progetto VS 2008 e si rivolge a .NET Framework 3.5. Project 2 è un progetto VS 2010 (release candidate) destinato a .NET Framework 4.0. Quando si tenta di aggiungere un riferimento a Project 2 in Project 1, non riesce con un messaggio di errore meno che informativo. So che se cambio il Framework di destinazione per Project 2 a 3.5, allora l'aggiunta del riferimento funzionerà. La mia domanda è: se non cambio i framework di destinazione, ma converto il Progetto 1 in VS 2010, il lavoro di referenziazione funzionerà? Detto in altro modo, esiste qualche incompatibilità intrinseca tra le librerie di classi che hanno come target diverse versioni di framework, oppure non funziona perché VS 2008 non conosce il framework 4.0?Perché l'aggiunta di un riferimento al progetto con targeting per .NET Framework 4.0 non riesce?

risposta

7

Sì, è un problema. Proprio come non è possibile aggiungere un riferimento a un assembly .NET 2.0 da un progetto .NET 1.0 o 1.1. .NET 4.0 è una nuova versione di runtime del framework (CLR). Le versioni .NET 3.5 e 3.0 utilizzano entrambe la versione 2.0 runtime del framework (CLR).

È sempre possibile aggiungere un riferimento da un assieme creato con un runtime più recente a un assieme con un runtime precedente, ma non viceversa.

Da NET 2.0 (3.0 e 3.5):
* possibile fare riferimento a .NET 2.0 (3.0 e 3.5) gruppi
* non può fare riferimento .NET 4.0 assemblee

Da NET 4.0:
* Può fare riferimento a .NET 4.0 assembly
* Può fare riferimento a .NET 2.0 (3.0 e 3.5) assiemi

2

Versione di framework 2, 3.0, 3.5 eseguita su CLR versione 2, mentre la versione di framework 4 gira su CLR versione 4: la versione 2 CLR non caricare un assembly che afferma che richiede CL R 4, quindi Visual Studio sta provando (male, sembra) per dirti questo. Quindi, per rispondere alla tua domanda, sì, se aggiorni il tuo progetto 1 a VS 2010 e cambi il framework di destinazione alla versione 4, (lo fa per impostazione predefinita per i progetti C++, ma non C#/VB.NET), sarà in grado per fare riferimento al progetto 2.

0

Se si desidera utilizzare l'assembly finalizzato a .net framework 4 dall'assembly finalizzato a .net framework 3.5, è possibile esportare assembly (.net framework 4) tramite COM e importarlo in assembly .net framework 3.5 .

Ci scusiamo per il mio scarso inglese.

+0

Il tuo inglese è completamente comprensibile. Niente di cui scusarti. Complimenti! :) –

Problemi correlati