If you have switched between feature branches where one is quite a bit behind the other, you may find you see the following error.
The first thing to do is follow the instructions of the error message. Check the project framework version and change it if it is not correct. If this doesn’t work, fixing the issue is going to be difficult. When you check the project it might be the correct version already and a NuGet restore does nothing.
Fixing Target Frameworks Error
The solution to this problem is actually quite simple. For some reason, using a clean or rebuild in visual studio, does not clean up all of the files. There is one specific file that VS doesn’t clean that causes this error.
The error message will tell you the project that it is having issues with. Right click on this project in the solution explorer and click “Open folder in Windows Explorer”. This will bring you to the project files.
Open the “obj” folder and inside you need to delete a file called “project.assets.json“. Go back to Visual Studio once this has been deleted and you rebuild the project. The error message should go away.
Additional Unrelated Build Errors
You may find you get additional build errors that seem unrelated. The same code from this branch may have built fine moments ago but now it is suddenly giving you a huge list of random errors that seem to make no sense.
This is often caused by the same problem. For some reason Visual Studio will only list a couple of the projects that are stuck with an out of data assets file. To fix this you will have to delete them all. This can be done quite easily with windows search.
Go to the root of the project solution and perform a file name search for “project.assets.json”. Make sure to modify the advanced search options to only search file name. If you have it set to search file contents too, you will be waiting a while for it to complete if you have a lot of projects.
Once they have all been found, delete all of the files. Return to your project and perform a rebuild. Hopefully, if there are any errors left, they make far more sense than all of the random crap it was showing before.