Ich habe eine Dotnet-Core-App, die auf Microsoft.NETCore.App 1.1.2 abzielt. Ich habe ein Testprojekt erstellt, um es gegen dieses Projekt zu testen, aber beim Erstellen habe ich diese Warnung bemerkt:
Ich öffne den NuGet Package Manager und sehe, dass die Warnung korrekt ist. Das getestete Projekt hat eine andere Version von Microsoft.NETCore.App:
Mein Problem ist, dass Visual Studio nicht zulässt, dass ich diese Version aktualisiere. Daher bin ich verwirrt darüber, wie dieses Problem gelöst werden kann: Idealerweise würde ich einfach auf die Dropdown-Liste klicken und die richtige Version auswählen, aber Visual Studio behauptet, dass dies aufgrund von "nicht möglich ist." zusätzliche Einschränkungen im Projekt oder in packages.config ". Wie soll ich das Paket aktualisieren? Auf welche "zusätzlichen Einschränkungen" bezieht sich Visual Studio?
quelle
Antworten:
EDIT 2018 : Befolgen Sie die Anweisungen zum Aktualisieren des Pakets nur, wenn Sie wirklich wissen, was Sie tun. In den meisten Fällen müssen Sie dieses Paket - oder andere Pakete, die als "vom Projekt blockiert" gekennzeichnet sind - niemals manuell aktualisieren. Eine Framework-abhängige App verwendet die neueste verfügbare Laufzeit und eine in sich geschlossene Anwendung führt automatisch einen zusätzlichen Build mit einer neueren Version dieses Pakets durch. (es gibt einige Grenzfälle , wo Sie brauchen dieses Paket in Testprojekten zu aktualisieren. in diesem Fall hinzufügen
<TargetLatestRuntimePatch>true</…>
und sehen diese Q & A für andere Optionen)Das implizite Paket verweist darauf, dass die
Microsoft.NET.Sdk
Schlussfolgerungen nicht über NuGet aktualisiert werden können.Wenn Sie von project.json migriert haben, enthält das Projekt mit der
1.1.0
Referenz wahrscheinlichin der csproj-Datei oder einem Element wie diesem (wenn Sie zuvor den Paketmanager zum Festlegen der Version verwendet haben):
Löschen Sie Einträge wie die oben genannten und alle Pakete verweisen
1.1.2
automatisch (oder was auch immer das installierte SDK als das neueste betrachtet). AlternativRuntimeFrameworkVersion
in allen Projekten festlegen .quelle
<RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>
Zeile entfernt. VS lässt mich die Version immer noch nicht manuell ändern, aber zumindest ist es jetzt die richtige Version (sie wurde auf 1.1.2 aktualisiert, wie Sie esIch hatte ein ähnliches Problem beim Versuch, das Entityframework.Core-Paket in einer .NET Core 2-Webanwendung zu installieren. Um das Problem zu beheben, habe ich die Installation über die Package Manager-Konsole erzwungen:
(2.0.5 war die aktuellste Version zu der Zeit)
Ich hoffe es ist nützlich. Frieden.
quelle
Für mich hinzufügen
hat den Trick gemacht
quelle
Kurze Antwort
Fügen
Microsoft.AspNetCore.App
Sie der Paketreferenz in Ihrer .csproj-Datei eine explizite Version hinzu.Lange Antwort
Ich hatte ein brandneues netcoreapp2.1-Projekt. Folgendes befand sich in der .csproj-Datei. Beachten Sie, dass der Paketreferenz keine Version zugeordnet war
Microsoft.AspNetCore.App
.Ich habe dem
Microsoft.Extensions.Logging.Abstractions
Paket einen expliziten Verweis hinzugefügt , um eine Abhängigkeitsinkongruenz (Erstellungsfehler) zu beheben.Micorsoft.AspNetCore.App
wollte Version 2.1.0 dieser Abhängigkeit, aber ein anderes Paket wollte Version 2.1.1. Meine .csproj-Datei sah jetzt so aus.Dies reduzierte den Erstellungsfehler auf eine Warnung bezüglich der
Micorsoft.AspNetCore.App
Anforderung der 2.1.0-Version desMicrosoft.Extensions.Logging.Abstractions
Pakets, aber Version 2.1.1 wurde natürlich behoben.Der Versuch,
Micorsoft.AspNetCore.App
auf Version 2.1.1 zu aktualisieren , um die Warnung zu beheben, wurde vom Paketmanager blockiert, wie vom OP erwähnt.Ich habe meine
Micorsoft.AspNetCore.App
Paketreferenz aktualisiert , um Version 2.1.1 explizit wie folgt zu verwenden.Dadurch wurde die Build-Warnung behoben und alle Versionen von
Microsoft.AspNetCore.App
in Package Manager entsperrt. Ich konnte sogar den expliziten Verweis auf entfernen,Microsoft.Extensions.Logging.Abstractions
ohne den ursprünglichen Fehler wieder einzuführen. Die endgültige .csproj sah ohne Probleme so aus.quelle
Ich hatte das gleiche Problem und ich denke, das Problem betrifft das Paket.
Das Problem wurde behoben, nachdem ich die Version genau angegeben hatte.
Wie ich weiß, tritt dieser Fehler bei der Versionsnummer auf
quelle
Eine andere mögliche Lösung. In dem
csproj
Aktualisieren Sie Datei das Zielframework auf die Version, auf die Sie aktualisieren möchten. Nach der Änderung gemäß den folgenden Ausschnitten können die Pakete über den NuGet-Paketmanager der Lösung aktualisiert werden.Vor:
Nach dem:
quelle
Ich habe es einfach gelöst: Klicken Sie mit der rechten Maustaste auf Projekt (oder ALT + Eingabetaste) -> Eigenschaften -> Anwendung -> Ziel-Framework (Wählen Sie .NET Core Framework (in diesem Fall 1.1)).
quelle
Die beste Empfehlung ist, Ihre Projekte nach dem Upgrade des SDK und der Laufzeit erneut zu erstellen und dann Ihren alten Code und Ihre Konfiguration in den neuen Projekten abzulegen. Abgesehen davon verbringen Sie zu viel Zeit mit nutzlosen Optimierungen und unbekannten Konfigurationen.
quelle