Condividi tramite


Risolvere i problemi relativi agli errori di impostazione di .NET Framework come destinazione

Si applica a: Visual Studio

In questo argomento vengono descritti gli errori di MSBuild che possono verificarsi a causa di problemi di riferimento e come risolvere tali errori.

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

È possibile creare applicazioni che fanno riferimento a progetti o assembly destinati a versioni diverse di .NET. Ad esempio, è possibile creare un'applicazione destinata a .NET 6, ma fa riferimento a un assembly destinato a .NET Core 3.1. Non è tuttavia possibile impostare un riferimento in un progetto destinato a una versione precedente di .NET a un progetto o a un assembly destinato a .NET 6. Di seguito è riportato un esempio dell'errore che potrebbe essere visualizzato in questo caso:

error NU1201: Project ClassLibrary-NET6 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project ClassLibrary-NET6 supports: net6.0 (.NETCoreApp,Version=v6.0)
2>Done building project "ClassLibrary-NET31.csproj" -- FAILED.

Per risolvere l'errore, assicurarsi che l'applicazione sia destinata a una versione .NET compatibile con la versione di destinazione dei progetti o degli assembly a cui fa riferimento l'applicazione.

Riassegnare un progetto a una versione diversa di .NET

Se si modifica la versione di destinazione di .NET per l'applicazione, Visual Studio modifica alcuni dei riferimenti, ma potrebbe essere necessario aggiornare manualmente alcuni riferimenti. Ad esempio, uno degli errori indicati in precedenza potrebbe verificarsi se si modifica un'applicazione in .NET Core 3.1 e tale applicazione include riferimenti, risorse o impostazioni che si basano su .NET 6.

Screenshot che mostra la modifica del framework di destinazione in Visual Studio.

Aggiornare i riferimenti in app.config

Per aggirare le impostazioni dell'applicazione nelle applicazioni .NET Framework, seguire questa procedura:

  1. Aprire Esplora soluzioni.
  2. Selezionare Mostra tutti i file e quindi modificare il file app.config nell'editor XML di Visual Studio.
  3. Modificare la versione nelle impostazioni in modo che corrisponda alla versione appropriata di .NET. È ad esempio possibile modificare l'impostazione della versione da 4.0.0.0 a 2.0.0.0.

Analogamente, per un'applicazione che ha aggiunto risorse, seguire questa procedura:

  1. Aprire Esplora soluzioni.
  2. Selezionare Mostra tutti i file.
  3. Espandere Progetto personale (Visual Basic) o Proprietà (C#), quindi modificare il file Resources.resx nell'editor XML di Visual Studio.
  4. Modificare l'impostazione della versione da 4.0.0.0 a 2.0.0.0.

Aggiornare le risorse

Se l'applicazione dispone di risorse come icone o bitmap o impostazioni come i stringa di connessione di dati, è anche possibile risolvere l'errore rimuovendo tutti gli elementi nella pagina Impostazioni di Progettazione progetti e quindi leggendo le impostazioni necessarie.

Un progetto di destinazione viene risolto in una versione diversa di .NET e i riferimenti non vengono risolti

Se si esegue di nuovo la destinazione di un progetto a una versione diversa di .NET, i riferimenti potrebbero non essere risolti correttamente in alcuni casi. I riferimenti completi espliciti agli assembly spesso causano questo problema, ma è possibile risolverli rimuovendo i riferimenti che non vengono risolti e quindi aggiungendoli di nuovo al progetto. In alternativa, è possibile modificare il file di progetto per sostituire i riferimenti. Rimuovere innanzitutto i riferimenti del formato seguente:

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

Sostituirli quindi con il formato semplice:

<Reference Include="System.ServiceModel" />

Note

Dopo aver chiuso e riaperto il progetto, è necessario ricompilarlo per verificare che tutti i riferimenti vengano risolti correttamente.

Riferimenti