2013-01-08 14 views
10

Ho una soluzione di Visual Studio 2008 e .NET Framework v3.5. Recentemente mi sono convertito in Visual Studio 2010 e .NET Framework v4.0.Migrazione di NET Framework dalla v3.5 alla v4.0

Per passare a .NET Framework v4.0 ho eseguito le proprietà del progetto e la scheda di compilazione, modificando l'obiettivo per il framework di destinazione v4.0 per ciascun progetto. Tuttavia se apro la configurazione del file di progetto csproj, posso vedere c'è un tag relativi a v3.5:

<ItemGroup> 
    <Reference Include="System" /> 
    <Reference Include="System.Core"> 
    <RequiredTargetFramework>3.5</RequiredTargetFramework> 
    </Reference> 
    <Reference Include="System.Data" /> 
    <Reference Include="System.Drawing" /> 
    <Reference Include="System.Xml" /> 
    <Reference Include="WindowsBase"> 
    <RequiredTargetFramework>3.0</RequiredTargetFramework> 
    </Reference> 
</ItemGroup> 

Vorrei sapere perché per qualche inclusi i riferimenti si riferisce alla v3.0, v3.5 framework se il progetto punta a .NET Framework v4.0. Ciò si verifica anche per altri progetti, nonostante il progetto sia destinato a .NET Framework v4.0.

System.Core si rivolge a 3,5 WindowsBase si rivolge a 3,0

+2

Ecco come l'IDE riconosce l'icona di avviso quando si seleziona una versione precedente di .NET. Funzionalità, non un bug. –

risposta

2

Tali domande si richiedono 3,5 (per System.Core) e 3.0 (per WindowsBase). In realtà, questo non è corretto al 100% (vedi il commento di Ramhound a questa risposta).

Finora, qualsiasi framework .NET superiore a 2.0 è essenzialmente DLL il cui sito è in cima alla 2.0. Ad esempio, alcuni anni e un lavoro fa, avevo bisogno di LINQ e Hashset <T> in .NET 2.0, poiché metà dei miei utenti erano bloccati su Win2K, che non supporta nulla sopra .NET 2.0. Mi sono ritrovato a ricompilare System.Core dal Mono e avevo il target 2.0, ed ero in grado di utilizzare le nuove funzionalità.

Non penso che sia qualcosa di cui ti devi preoccupare.

+0

Devo sottolineare che entrambi gli elementi XML di RequiredTargetFramework sono vuoti. Ciò significa che non ci sono riferimenti indirizzati verso 3.5 o 3.0. Se vuoi, puoi modificare manualmente il file della soluzione e rimuovere quelle linee. –

+0

@Ramhound: buon punto. Non ho mai esaminato molto i file csproj, quindi non lo sapevo. –

+0

Ho trascorso molti giorni lavorando a dover modificare a mano il file della soluzione per vari motivi. La tua prima frase in questo caso non è corretta al 100%. In un caso come questo 'System.Core' sarà la versione inclusa in .NET Framework 4.0 e' WindowsBase', che sarà anche per le applicazioni WPF. NET Framework 4.0 –

Problemi correlati