Я відчував подібну проблему, але з v4.7.2
. А саме, я продовжував отримувати повідомлення журналу побудови так:
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.
Незважаючи на те, що це виглядало схожим чином, жоден із запропонованих вище кроків не спрацював для мене. Я постійно бачив це повідомлення після кожної збірки. Здавалося, ніщо не могло допомогти.
Насправді проблема була пов’язана з тим, що через міграцію мені довелося помістити два проекти в одну папку коду. Один з них був орієнтований на .Net Core , інший - .Net Framework , обидва посилалися на однакові стандартні бібліотеки .Net. Очевидно, вони спільно використовують ту саму obj
папку, де розміщені основні проектиproject.assets.json
файл. Насправді, саме цей файл заважає проекту Framework, перешкоджаючи його нормальній побудові. Здається, навіть якщо ви виконали Міграцію з package.config до PackageReference ..., що було рекомендовано як одне з можливих рішень.
Ви можете спробувати вирішити проблему, помістивши такий фрагмент у файл проекту Framework:
<Project>
...
<PropertyGroup>
<BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath>
<BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
</PropertyGroup>
...
</Project>
Це одразу ж спрацювало для мене, це було лише пізніше, коли я уважно прочитав, навіщо це нам потрібно і чому це працює. Я несподівано знайшов його в частину 2 з Перенастройка Приклад WPF додатки для .NET Core 3 під упевнитися проект .NET Framework все ще будує розділ. BaseOutputPath
і BaseIntermediateOutputPath
там можна знайти змінні msbuild, не впевнені, чи вони десь добре задокументовані.