Build error while transitioning between branches: Your project is not referencing the “.NETFramework,Version=v4.7.2” framework

前端 未结 8 1179
暗喜
暗喜 2021-02-01 12:40

We\'re using Git and we have a solution which is targeting the full net framework. A couple of days ago, I\'ve started migrating the solution to .net core. Unfortunately, someth

相关标签:
8条回答
  • 2021-02-01 13:19

    I had same error and bin/obj cleanup did not help. After a lengthy investigation I have found that I have mistakenly overridden IntermediateOutputPath to point to the same directory for all my projects. This messed up NuGet intermediate files during parallel build. Fixing Build.Directory.props to include $(MSBuildProjectName) in IntermediateOutputPath resolved the issue for me.

    0 讨论(0)
  • 2021-02-01 13:21

    I had a similiar issue when upgrading some projects from 4.6.2 to 4.7.2 - this happened for both our ASP.Net Core solution targetting full framework, and our WPF solution.

    Initially it seemed to be random projects that had this error, other projects with near exact same csproj were building fine and others were failing. The 're-run NuGet restore' in the message sent me down the wrong path aswell (some of these projects didn't even have NuGet references...)

    The issue appears to stem from the projects obj folder containing a project.assets.json file, I'm not sure when this was generated - likely relics from the past, and cleaning the project does not remove this. The file points to the previous framework, in my case 4.6.2 - Manually deleting the bin/obj folders for each project that wouldn't build & then rebuilding resolved this error for me. This would also explain why when I cloned the repo for my sanity, it also built fine.

    0 讨论(0)
  • 2021-02-01 13:23

    Sounds like you might have some libraries that aren't Core compatible. If Nuget is expecting/requiring 4.7.2, then something is likely still targeting it, either in your project or a library I'd venture. Would also explain why cleaning up the Nuget packages and restoring them doesn't fix the issue if the package that you're restoring still targets 4.7.2.

    Related note, are you sure that you're using the latest project structure? I noticed that your error message includes project.json, which was deprecated in favor of the new csproj format; more info is here if it's relevant. I'm not aware of a situation where you'd get an error message about project.json and the solution didn't have a project.json.

    0 讨论(0)
  • 2021-02-01 13:25

    I found that just doing a search for project.assets.json over my repo using Agent Ransack and then deleting those files, rather than entire bin & obj folders, did the trick :)

    0 讨论(0)
  • 2021-02-01 13:27

    MaxJ's answer came close for my situation, but I had to delete bin and obj folders for every project in the solution when doing so in the single project that wouldn't build didn't fix the build.

    For convenience, the PS I used for the above which should only be run at the root of a folder that you don't mind deleting these folders in (in Front End node modules might be a bad place for example):

    gci -Include bin,obj -Recurse | Remove-Item -Force -Recurse
    
    0 讨论(0)
  • 2021-02-01 13:28
    1. Call git clean -dfX- Remove untracked files from the working tree
    2. Rebuild solution
    0 讨论(0)
提交回复
热议问题