Context:
I have a C# project that contains a platform layer consisting of 9 DLLs, several of which reference each other. Then I have a group of 20 command-line programs that use the platform layer in various ways, but don’t try to talk to each other. In other words, they are independent silos. All of these are individual sub-projects of a single solution, implemented in Visual Studio, running in VStudio 2022, based on .NET 4.8. Everything was working perfectly and building without errors.
As part of the solution structure, I have two directories, Debug and Release, placed immediately under the top-level solution directory. All build output is directed into the appropriate one of the directories, so all cross-references are easily resolved, and creating a release package is a simple matter.
I decided to upgrade the whole solution to .NET 8, and used the Upgrade feature in the solution. I had to do it sub-project at a time, as trying to do the entire solution at once seemed to kill VStudio. After upgrading each sub-project, I had to reset the Build Output location in it back to my Debug directory.
However, now when I rebuild the solution, I am getting myriad errors of the form “Metadata file …dll could not be found”, referring to directories that are subordinate to my Debug directory and that do not exist, nor did I specify them. These errors are followed by about a thousand errors telling me about missing type names that are of course defined in the platform DLLs.
Could someone explain to me what changes .NET is forcing, how to adapt my project, and why Microsoft, once again, can’t leave well enough alone when it comes to the tools that developers actually require? I have upgraded this project through various flavours of .NET in the past, as the platform code has existed for at least half a dozen years. It was always simply a case of installing the new SDK and changing the target platform in the Properties. Now, it seems that the entire solution needs to be restructured in a way that may not even work properly.
Any help gratefully accepted.
Norm