J
Jeremy Young
Guest
This problem may well not be restricted to VS2017 (15.5.2 / 4.7.02558)
We have a solution with many projects, both C++ and CLI. We have recently added an x64 Platform and all projects build to an OutputX64 folder. When building x86 Platform all output goes to an "Output" folder.
All good, all builds correctly in both modes, all OutDir's have been updated in all projects. However, what we have noticed is that if I do a full rebuild in x86, then switch Platform and do a full rebuild in x64, for some reason the Clean process is deleting files from both Output folders, not just the OutputX64 folder.
If I do another rebuild of x64, this does not occur - only the files from the OutputX64 folder are being deleted.
The same happens in reverse - if I build x64 and switch to building x86 and perform a Rebuild, it cleans files from the OutputX64 folder AS WELL as from the Output folder.
I've tried marking one of the files that isn't meant to be deleted as Read Only, and sure enough, in the build output, right after the project that generates it starts, I get an access denied error.
Is this in some way by design? It appears that the Clean does not clean the currently selected platform, it cleans files from all the Platforms. It's causing our CM team headaches as we want to make a dual-mode installer and need to build the project in both x86 and x64. They are getting around it by duplicating the x86 folder before kicking off the x64 build but that feels like a work-around. Is there a better way of doing this?
Continue reading...
We have a solution with many projects, both C++ and CLI. We have recently added an x64 Platform and all projects build to an OutputX64 folder. When building x86 Platform all output goes to an "Output" folder.
All good, all builds correctly in both modes, all OutDir's have been updated in all projects. However, what we have noticed is that if I do a full rebuild in x86, then switch Platform and do a full rebuild in x64, for some reason the Clean process is deleting files from both Output folders, not just the OutputX64 folder.
If I do another rebuild of x64, this does not occur - only the files from the OutputX64 folder are being deleted.
The same happens in reverse - if I build x64 and switch to building x86 and perform a Rebuild, it cleans files from the OutputX64 folder AS WELL as from the Output folder.
I've tried marking one of the files that isn't meant to be deleted as Read Only, and sure enough, in the build output, right after the project that generates it starts, I get an access denied error.
Is this in some way by design? It appears that the Clean does not clean the currently selected platform, it cleans files from all the Platforms. It's causing our CM team headaches as we want to make a dual-mode installer and need to build the project in both x86 and x64. They are getting around it by duplicating the x86 folder before kicking off the x64 build but that feels like a work-around. Is there a better way of doing this?
Continue reading...