Miałem podobny problem, ale z v4.7.2
. Mianowicie, ciągle otrzymywałem następujący komunikat dziennika kompilacji:
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.
Pomimo tego, że wyglądało podobnie, żaden z proponowanych powyżej kroków nie zadziałał. Widziałem ten komunikat po każdej kompilacji. Wydawało się, że nic nie jest w stanie pomóc.
W rzeczywistości problem był związany z tym, że z powodu migracji musiałem umieścić dwa projekty w jednym folderze kodu. Jeden z nich był skierowany do .Net Core , drugi do .Net Framework , oba odwoływały się do tych samych bibliotek .Net Standard. Najwyraźniej dzielą ten sam obj
folder, w którym umieszczają project.assets.json
plik projektów Core . Właściwie to dokładnie ten plik koliduje z projektem Framework, uniemożliwiając jego normalną kompilację. Wydaje się, że nawet jeśli wykonałeś migrację z packages.config do PackageReference ... co było zalecane jako jedno z możliwych rozwiązań.
Możesz spróbować rozwiązać problem, umieszczając następujący fragment kodu w pliku projektu Framework:
<Project>
...
<PropertyGroup>
<BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath>
<BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
</PropertyGroup>
...
</Project>
U mnie od razu zadziałało, dopiero później uważnie przeczytałem, dlaczego tego potrzebujemy i dlaczego działa. I nagle okazało się, że w części 2 o migracji aplikacji WPF próbki do .NET Core 3 pod Upewniwszy projekt Framework nadal buduje odcinek. BaseOutputPath
i BaseIntermediateOutputPath
zmienne msbuild można tam znaleźć, nie jestem pewien, czy są one dobrze udokumentowane w dowolnym miejscu.