Behandeln von Fehlern bei der .NET Framework-Zielbestimmung

              Gilt für: Visual Studio

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

Verweisen auf ein Projekt oder eine Assembly, die auf eine andere Version von .NET ausgerichtet ist

Sie können Anwendungen erstellen, die auf Projekte oder Assemblys verweisen, die auf verschiedene Versionen von .NET ausgerichtet sind. Sie können beispielsweise eine Anwendung erstellen, die auf .NET 6 abzielt, aber auf eine Assembly verweist, die auf .NET Core 3.1 ausgerichtet ist. Sie können jedoch keinen Verweis in einem Projekt, das auf eine frühere Version von .NET abzielt, auf ein Projekt oder eine Assembly festlegen, die auf .NET 6 ausgerichtet ist. Hier sehen Sie ein Beispiel für den Fehler, der in diesem Fall möglicherweise angezeigt 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 ausgerichtet ist, 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 der Verweise, aber Möglicherweise müssen Sie einige Verweise manuell aktualisieren. Beispielsweise kann einer der oben genannten Fehler auftreten, wenn Sie eine Anwendung auf .NET Core 3.1 als Ziel ändern und diese Anwendung Verweise, Ressourcen oder Einstellungen aufweist, die auf .NET 6 basieren.

Screenshot: Ändern des Zielframeworks in Visual Studio

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 app.config Datei im XML-Editor von Visual Studio.
  3. Ändern Sie die Version in den Einstellungen so, dass sie der entsprechenden Version von .NET entspricht. 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 folgenden Schritte aus:

  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 Über Ressourcen wie Symbole oder Bitmaps oder Einstellungen wie Datenverbindungszeichenfolgen verfügt, können Sie den Fehler auch beheben, indem Sie alle Elemente auf der Seite Einstellungen des Projekt-Designer entfernen und dann die erforderlichen Einstellungen ändern.

Sie richten ein Projekt auf eine andere Version von .NET aus, 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 verursachen dieses Problem häufig, aber Sie können es beheben, indem Sie die Verweise entfernen, die nicht aufgelöst werden, und sie dann wieder zum Projekt hinzufügen. Alternativ können Sie die Projektdatei bearbeiten, um die Verweise zu ersetzen. Entfernen Sie zunächst Verweise in der folgenden Form:

<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" />

Hinweis

Nachdem Sie Das Projekt geschlossen und erneut geöffnet haben, sollten Sie es auch neu erstellen, um sicherzustellen, dass alle Verweise ordnungsgemäß aufgelöst werden.

References