Risoluzione dei problemi relativi agli errori di impostazione di .NET Framework come destinazione

Visual Studio consente di distribuire un runtime di .NET Framework più leggero, noto come .NET Framework 4 Client Profile, ovvero un runtime che include solo un sottoinsieme dei file binari contenuti in .NET Framework 4. Tramite .NET Framework 4 Client Profile, è possibile distribuire una libreria di .NET Framework più piccola agli utenti dell'applicazione in modo che possano eseguirla anche se la versione completa di .NET Framework 4 non è installata nei loro sistemi.

Quando l'applicazione è destinata a un particolare profilo, possono verificarsi errori se si tenta di fare riferimento a un assembly che non fa parte di tale profilo. Tra gli errori comuni sono inclusi i seguenti:

  • Il nome del tipo o dello spazio dei nomi "nome" non esiste nello spazio dei nomi "spaziodeinomi". Probabilmente manca un riferimento a un assembly.

  • Tipo "nometipo" non definito.

  • Impossibile risolvere l'assembly "assembly". L'assembly non è elencato come parte del profilo "profilo".

Questi errori possono essere il risultato di azioni diverse. In questo argomento vengono descritte le possibili cause di errore e fornite le relative soluzioni.

Per ulteriori informazioni su .NET Framework 4 Client Profile, vedere Profilo client .NET Framework e Procedura: scelta di una versione o profilo di .NET Framework specifico.

Riferimento a un assembly non incluso nel profilo client

Se nell'applicazione viene eseguito il tentativo di fare riferimento a funzionalità contenute in un assembly o un assembly dipendente non incluso in .NET Framework 4 Client Profile, è possibile che vengano visualizzati messaggi di errore di runtime. Il messaggio esatto dipende dalla posizione della funzionalità a cui si fa riferimento. Per eliminare tali errori, è possibile rimuovere dal progetto il riferimento all'assembly errato oppure impostare il progetto in modo che sia destinato alla versione completa di .NET Framework versione 4 anziché alla libreria del sottoinsieme di .NET Framework 4 Client Profile.

Riferimento a un progetto o a un assembly destinato a una versione diversa di .NET Framework

È possibile creare applicazioni che fanno riferimento a progetti o assembly destinati a versioni diverse di .NET Framework. Se, ad esempio, si crea un'applicazione destinata a .NET Framework 4 Client Profile, tale progetto può fare riferimento a un assembly destinato a .NET Framework versione 2.0. Se, tuttavia, si crea un progetto destinato a una versione precedente di .NET Framework, non è possibile impostare un riferimento in tale progetto a un progetto o a un assembly destinato a .NET Framework 4 Client Profile o .NET Framework 4. Per eliminare l'errore, assicurarsi che il profilo di destinazione dell'applicazione sia compatibile con il profilo di destinazione dei progetti o assembly ai quali fa riferimento l'applicazione.

Reindirizzamento di un progetto a una versione diversa di .NET Framework

Se si modifica la versione di destinazione di .NET Framework per l'applicazione, in Visual Studio vengono modificati alcuni dei riferimenti. È tuttavia necessario eseguire anche alcuni aggiornamenti manuali. Se, ad esempio, si crea un'applicazione che dispone di risorse o impostazioni basate su .NET Framework 4 Client Profile, quindi si modifica l'applicazione in modo da impostare .NET Framework 3.5 SP1 come destinazione, è possibile ricevere uno degli errori accennati in precedenza.

Per risolvere il problema per le impostazioni applicazione, in Esplora soluzioni fare clic su Mostra tutti i file, quindi modificare il file app.config nell'editor XML di Visual Studio. Modificare la versione nelle impostazioni in modo che corrisponda a quella di .NET Framework. È possibile, ad esempio, modificare l'impostazione della versione da 4.0.0.0 a 2.0.0.0. Analogamente, per un'applicazione in cui sono state aggiunte risorse, in Esplora soluzioni fare clic su Mostra tutti i file, espandere Progetto (Visual Basic) o Proprietà (C#), quindi modificare il file Resources.resx nell'editor XML di Visual Studio. Modificare l'impostazione della versione da 4.0.0.0 a 2.0.0.0.

Se l'applicazione dispone di risorse quali icone o bitmap oppure di impostazioni quali stringhe di connessione dati, è inoltre possibile risolvere il problema rimuovendo tutti gli elementi nella pagina Impostazioni in Progettazione progetti, quindi aggiungendo nuovamente le impostazioni necessarie. Per ulteriori informazioni, vedere Pagina Impostazioni, Progettazione progetti.

Un progetto è stato destinato a una versione diversa di .NET Framework e non è possibile risolvere i riferimenti

In alcuni casi, quando si destina un progetto a una versione diversa di .NET Framework, i riferimenti non vengono risolti correttamente. Una causa comune è rappresentata dai riferimenti completi espliciti agli assembly. È possibile risolvere il problema rimuovendo i riferimenti che non è possibile risolvere, quindi riaggiungerli al progetto. In alternativa, è possibile modificare il file di progetto per rimuovere i riferimenti del form:

<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

e sostituirli con un formato semplice:

<Reference Include="System.ServiceModel" />

Nota

Dopo avere chiuso e riaperto il progetto, sarà necessario ricompilarlo per assicurarsi che tutti i riferimenti vengano risolti correttamente.

Vedere anche

Attività

Procedura: scelta di una versione o profilo di .NET Framework specifico

Concetti

Profilo client .NET Framework

Altre risorse

Scelta di una versione o profilo di .NET Framework specifico