Viene visualizzato quando si preme F1 nella finestra di dialogo Framework e riferimenti:
Per impostazione predefinita per i nuovi progetti, il framework di destinazione è impostato su .NET Framework 4. L'IDE non supporta la modifica del framework di destinazione, ma è possibile modificarlo manualmente. Nel file di progetto (.vcxproj), il framework di destinazione predefinito è rappresentato dall'elemento proprietà v4.0. Per modificare il framework di destinazione, scaricare il progetto, utilizzare un editor di testo per aprire il file di progetto, quindi modificare il valore dell'elemento proprietà da v4.0 a un'altra versione installata sul server. Ad esempio, se si specifica v3.5, che rappresenta .NET Framework v3.5, è necessario installare Visual Studio 2008 SP1 . Salvare e chiudere il file, ricaricare il progetto e verificare che il framework di destinazione sia visualizzato nella pagina delle proprietà. *
Questo non è tremendamente preciso nei progetti convertiti, dovrai aggiungere l' <TargetFrameworkVersion>
elemento tu stesso. Inseriscilo nel gruppo di proprietà con l'etichetta "Globali":
<PropertyGroup Label="Globals">
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<others...>
</PropertyGroup>
La storia è diversa quando si utilizza VS2012 e versioni successive, la prima versione di VS che ha acquisito l'impostazione Platform Toolset nella pagina delle proprietà Generale. È quindi necessario selezionare "v90" per ottenere una build corretta destinata a 3.5. È comunque maldestro, è necessario avere tutte le versioni intermedie di VS installate sul computer per avere quella selezione disponibile.
Perché è necessario VS2008 installato richiede una spiegazione da solo. Il problema principale è che la libreria di runtime C (msvcrt100.dll e versioni successive) contiene codice .NET per supportare l'esecuzione di codice gestito. Il dettaglio cruciale è un inizializzatore del modulo che garantisce che il CRT sia inizializzato correttamente nel programma che utilizza il codice C ++ / CLI. Tale codice è sempre indirizzato a .NET 4 e poiché è inserito in msvcrt100.dll (e versioni successive), si ha sempre una forte dipendenza dal runtime v4.0.30319. È possibile avere una dipendenza pura v2.0.50727 solo quando si utilizza il vecchio runtime C, msvcrt90.dll. Puoi essere sicuro di avere una dipendenza msvcrt90.dll quando usi i file #include del compilatore di VS2008.
Fatto freddo e duro che è abbastanza necessario passare presto a .NET 4, se non lo fai avrai difficoltà a creare problemi come questo. Ci sono pochissimi ostacoli pratici a questo proposito, .NET 4 è ampiamente disponibile gratuitamente su tutti gli obiettivi che immagineresti. Il superamento del FUD associato al passaggio a una versione di runtime superiore è generalmente solo il vero problema. Nessun motivo di paura e dubbio, è stabile.