I have several projects that get built every time I ask VS to build the solution. The relevant line from the build logs:
Project 'MyProject' (SolutionFolder\MyProject\1.0.0\MyProject)' is not up to date. Missing output file 'd:\...\MyProject\1.0.0\bin\MyProject.dll'.
MyProject.dll exists, but instead of in ...\1.0.0\bin\MyProject.dll it's in d:\...\MyProject\1.0.0\objd\amd64\MyProject.dll: the output directory instead of the bin directory. VS is looking in the wrong place, failing the find the DLL, and rebuilding the project every time. The OutputPath is set to "bin/". It takes about 30 seconds to build the 5 projects; it's annoying, and I'd like to get that time back, but it's not the end of the world.
Other possibly-relevant information:
- The project is inside three layers of solution folders: SolutionFolder/MyProject/1.0.0
- This project's output is consumed by other, similar projects. The MyProject.dll shows up in the other projects' bin/ folders, but those other projects don't have their own DLL in that folder either. So I have this problem four times over: once for the project with no dependencies, and three other projects that use the first one.
- These are Web Application projects that use TypeScript. The project type GUIDs are {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
How can I get Visual Studio to recognize that it's already built these projects, so that they'll only rebuild when something actually changes?
Clean the solution, close solution and VS also.
Then delete the SUO file and bin and obj folders.
Open VS.
Re-ref the DLL, etc, etc.. Change ref path in csproj file(s).