Ich habe ein ähnliches Problem erlebt, aber mit v4.7.2
. Ich habe nämlich immer wieder eine Build-Log-Nachricht erhalten:
error : Your project does not reference ".NETFramework,Version=v4.7.2" framework. Add a reference to ".NETFramework,Version=v4.7.2" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.
Trotz der Tatsache, dass es ähnlich aussah, funktionierte keiner der oben vorgeschlagenen Schritte für mich. Ich habe diese Nachricht nach jedem Build immer wieder gesehen. Nichts schien helfen zu können.
Tatsächlich hing das Problem damit zusammen, dass ich aufgrund der Migration zwei Projekte in einem Codeordner ablegen musste. Eine davon war auf .Net Core ausgerichtet , eine andere auf .Net Framework , beide verwiesen auf dieselben .Net Standard-Bibliotheken. Anscheinend teilen sie sich denselben obj
Ordner, in dem Core-Projekte project.assets.json
Dateien ablegen. Genau diese Datei stört das Framework-Projekt und verhindert dessen normale Erstellung. Scheint auch dann, wenn Sie die Migration von packages.config zu PackageReference durchgeführt haben ... was als eine der möglichen Lösungen empfohlen wurde.
Sie können versuchen, das Problem zu beheben, indem Sie das folgende Snippet in Ihre Framework-Projektdatei einfügen:
<Project>
...
<PropertyGroup>
<BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath>
<BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
</PropertyGroup>
...
</Project>
Es hat sofort bei mir funktioniert, erst später habe ich aufmerksam gelesen, warum wir es brauchen und warum es funktioniert. Ich fand es unerwartet in Teil 2 von Migrieren einer Beispiel-WPF-App zu .NET Core 3 unter Sicherstellen, dass das .NET Framework-Projekt noch erstellt wird. BaseOutputPath
und BaseIntermediateOutputPath
msbuild-Variablen sind dort zu finden, nicht sicher, ob sie irgendwo gut dokumentiert sind.