Freigeben über


Problembehandlung bei .NET Framework-Zielversionsfehlern

Gilt für: Visual Studio

In diesem Thema werden MSBuild-Fehler beschrieben, die aufgrund von Referenzproblemen auftreten können und wie Sie diese Fehler beheben können.

Verweisen auf ein Projekt oder eine Assembly, das/die auf eine andere .NET-Version ausgerichtet ist

Sie können Anwendungen erstellen, die auf Projekte oder Assemblys verweisen, die auf andere .NET-Versionen abzielen. Sie können z. B. eine Anwendung für .NET 6 erstellen, die auf eine Assembly verweist, die wiederum auf .NET Core 3.1 abzielt. Sie können jedoch keinen Verweis in einem Projekt festlegen, das auf eine frühere Version von .NET abzielt, auf ein Projekt oder eine Assembly, die auf .NET 6 ausgerichtet ist. Hier ist ein Beispiel des Fehlers, der in diesem Fall ggf. gemeldet wird:

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.

Um den Fehler zu beheben, stellen Sie sicher, dass Ihre Anwendung auf eine .NET-Version abzielt, die mit der Version kompatibel ist, auf die die Projekte oder Assemblys abzielen, auf die Ihre Anwendung verweist.

Erneutes Ausrichten eines Projekts auf eine andere Version von .NET

Wenn Sie die Zielversion von .NET für Ihre Anwendung ändern, ändert Visual Studio einige Verweise, aber Sie müssen möglicherweise einige Verweise manuell aktualisieren. Einer der oben erwähnten Fehler kann z. B. auftreten, wenn Sie eine Anwendung so ändern, dass sie auf .NET Core 3.1 abzielt, und diese Anwendung verfügt über Ressourcen oder Einstellungen, die von .NET 6 abhängen.

Screenshot, der das Ändern des Zielframeworks in Visual Studio zeigt.

Aktualisieren von Verweisen in "app.config"

Führen Sie die folgenden Schritte aus, um Anwendungseinstellungen in .NET Framework-Anwendungen zu umgehen:

  1. Öffnen Sie den Projektmappen-Explorer.
  2. Wählen Sie "Alle Dateien anzeigen" aus, und bearbeiten Sie dann die Datei "app.config" im XML-Editor von Visual Studio.
  3. Ändern Sie die Version in den Einstellungen in die entsprechende Version von .NET. Beispielsweise können Sie die Versionseinstellung von 4.0.0.0 in 2.0.0.0 ändern.

Führen Sie für eine Anwendung, die Ressourcen hinzugefügt hat, die folgende Schritte ausführen:

  1. Öffnen Sie den Projektmappen-Explorer.
  2. Wählen Sie " Alle Dateien anzeigen" aus.
  3. Erweitern Sie "Mein Projekt " (Visual Basic) oder "Eigenschaften " (C#), und bearbeiten Sie dann die Datei "Resources.resx " im XML-Editor von Visual Studio.
  4. Ändern Sie die Versionseinstellung von 4.0.0.0 in 2.0.0.0.

Aktualisieren von Ressourcen

Wenn Ihre Anwendung Ressourcen wie Symbole oder Bitmaps oder Einstellungen wie Daten Verbindungszeichenfolge enthält, können Sie den Fehler auch beheben, indem Sie alle Elemente auf der Seite "Einstellungen" des Project-Designers entfernen und dann die erforderlichen Einstellungen lesen.

Sie können ein Projekt erneut auf eine andere Version von .NET ausrichten, und Verweise werden nicht aufgelöst.

Wenn Sie ein Projekt erneut auf eine andere Version von .NET ausrichten, werden Ihre Verweise in einigen Fällen möglicherweise nicht ordnungsgemäß aufgelöst. Explizite vollqualifizierte Verweise auf Assemblys führen häufig zu diesem Problem, aber Sie können es beheben, indem Sie die Verweise entfernen, die nicht aufgelöst werden, und sie dann wieder zum Projekt hinzufügen. Als Alternative können Sie die Projektdatei bearbeiten, um die Verweise zu ersetzen. Entfernen Sie zunächst Verweise auf das folgende Formular:

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

Ersetzen Sie sie dann durch das einfache Formular:

<Reference Include="System.ServiceModel" />

Notiz

Nach Schließen und erneutem Öffnen des Projekts sollten Sie es auch neu erstellen, um sicherzustellen, dass alle Verweise ordnungsgemäß aufgelöst werden.

References