Condividi tramite


Eseguire la migrazione da .NET Framework 1.1, 2.0 e 3.5 a .NET Framework 4

Windows non supporta più .NET Framework 1.1 e 2.0. Di conseguenza, le applicazioni destinate alle versioni precedenti di .NET Framework non verranno eseguite senza installare in modo esplicito .NET Framework 3.5. È tuttavia consigliabile aggiornare l'app a .NET Framework 4. Questo articolo illustra i passaggi necessari per eseguire un'applicazione destinata a una versione precedente di .NET Framework.

Reindirizzare o ricompilare

Esistono due modi per ottenere un'applicazione compilata con .NET Framework 1.1 per l'esecuzione in Windows 7 o in un sistema operativo Windows successivo:

  • Ridestinare l'applicazione da eseguire in .NET Framework 4 e versioni successive.

    Per retargeting è necessario aggiungere un <elemento supportedRuntime> al file di configurazione dell'applicazione che consente di eseguirlo con .NET Framework 4 e versioni successive.

    Il file di configurazione per un'app è un file XML che si trova nella stessa directory e ha lo stesso nome di file dell'app, ma con un'estensione .config . Ad esempio, per un'app denominata MyExecutable.exe, il file di configurazione dell'applicazione è denominato MyExecutable.exe.config.

    Un file di configurazione di questo tipo ha il formato seguente:

    <configuration>
       <startup>
          <supportedRuntime version="v4.0"/>
       </startup>
    </configuration>
    
  • Ricompilare l'applicazione con un compilatore destinato a .NET Framework 4 o versione successiva. Se in origine è stato usato Visual Studio 2003 per sviluppare e compilare la soluzione, è possibile aprire la soluzione in Visual Studio 2010 (ed eventualmente versioni successive) e usare la finestra di dialogo Compatibilità progetto per convertire i file di soluzione e di progetto dai formati usati da Visual Studio 2003 al formato Microsoft Build Engine (MSBuild).

    Indipendentemente dal fatto che si preferisca ricompilare o riconfigurare l'applicazione, è necessario determinare se l'applicazione è interessata da eventuali modifiche introdotte nelle versioni successive di .NET Framework. Queste modifiche sono di due tipi:

  • Modifiche di rilievo che si sono verificate tra .NET Framework 1.1 e versioni successive di .NET Framework.

  • Tipi e membri di tipo contrassegnati come deprecati o obsoleti tra .NET Framework 1.1 e versioni successive di .NET Framework.

Indipendentemente dal fatto che si ritargetizzi l'applicazione o la si ricompili, è necessario esaminare le modifiche importanti e i tipi e i membri obsoleti per ogni versione di .NET Framework rilasciata dopo .NET Framework 1.1.

Modifiche radicali

Quando si verifica una modifica critica, a seconda della modifica specifica, una soluzione alternativa può essere disponibile sia per le applicazioni ridirezionate che per le applicazioni ricompilate. In alcuni casi, è possibile aggiungere un elemento figlio all'elemento <di runtime> del file di configurazione dell'applicazione per ripristinare il comportamento precedente. Ad esempio, il file di configurazione seguente ripristina il comportamento di ordinamento e confronto delle stringhe usato in .NET Framework 1.1 e può essere usato con un'applicazione riconfigurata o ricompilata.

<configuration>
   <runtime>
      <CompatSortNLSVersion enabled="4096"/>
   </runtime>
</configuration>

In alcuni casi, tuttavia, potrebbe essere necessario modificare il codice sorgente e ricompilare l'applicazione.

Per valutare l'impatto delle possibili modifiche di rilievo nell'applicazione, è necessario esaminare gli elenchi di modifiche seguenti:

Tipi e membri obsoleti

L'impatto dei tipi e dei membri deprecati è leggermente diverso per le applicazioni ridirezionate e le applicazioni ricompilate. L'uso di tipi e membri obsoleti non influirà su un'applicazione retargetta, a meno che il tipo o il membro obsoleto non sia stato fisicamente rimosso dal relativo assembly. La ricompilazione di un'applicazione che usa tipi o membri obsoleti genera in genere un avviso del compilatore anziché un errore del compilatore. In alcuni casi, tuttavia, genera un errore del compilatore e il codice che usa il tipo o il membro obsoleto non viene compilato correttamente. In questo caso, è necessario riscrivere il codice sorgente che chiama il tipo o il membro obsoleto prima di ricompilare l'applicazione. Per altre informazioni sui tipi e i membri obsoleti, vedere What's Obsolete in the Class Library.

Per valutare l'impatto dei tipi e dei membri deprecati dopo il rilascio di .NET Framework 2.0 SP1, vedere What's Obsolete in the Class Library (Elementi obsoleti nella libreria di classi). Esaminare gli elenchi di tipi e membri obsoleti per .NET Framework 2.0 SP1, .NET Framework 3.5 e .NET Framework 4.