I maintain a library with different vcproj files for the different compilers. So typically for project xxx, I'll have
VS2005 xxxv8.sln, xxxv8.vcproj
VS2008 xxxv9.sln, xxxv9.vcproj
VS2010 xxxv10.sln, xxxv10.vcxproj
Battle 1: To go from xxx to xxxv8, I rename xxx.vcproj to xxxv8.vcproj. I then start the project from xxxv8.vcproj and it creates xxxv8.sln for me. Only problem is I don't want the project to be called xxxv8, I want it to be called xxx. If I rename the project in VS, it renames the vcproj file back to xxx.vcproj. The only way I've found around this is to let it do everything as xxxv8.vcproj and then go in with vi or notepad and change xxxv8 to xxx in xxxv8.sln. I have to do this for v9 and v10 too. Is there a better way?
Battle 2: VS allows you to put the binaries in a particular place but not the obj files. The obj files always go into the object directory. I put the binaries into bin\v8, bin\v9, bin\v10 or bin\x86\v8 etc. Some of the code uses 32-bit DLLs, so it cannot be agnostic. I'd like the objects to go into obj\v8, obj\v9, obj\v10 otherwise the build falls over if I do a compile for both VS2005 and VS2010. If I do 2005 first, there is a link error in 2010. If I do 2010 first, there is a link error in 2005. I basically need to wipe out the entire object directory before I start a new build system. Again, the only way I've found is to go into the vcproj files with notepad and change the object directory. Is there a better way?
Battle 3: When moving between the compilers, Clean Solution doesn't work. It doesn't clear away anything. I actually have to come out of VS, delete both the bin and object directories (before I changed it to obj\vx) and then it builds properly and Clean works again. Any idea why clean solution doesn't work when moving between compilers?
VS2005 xxxv8.sln, xxxv8.vcproj
VS2008 xxxv9.sln, xxxv9.vcproj
VS2010 xxxv10.sln, xxxv10.vcxproj
Battle 1: To go from xxx to xxxv8, I rename xxx.vcproj to xxxv8.vcproj. I then start the project from xxxv8.vcproj and it creates xxxv8.sln for me. Only problem is I don't want the project to be called xxxv8, I want it to be called xxx. If I rename the project in VS, it renames the vcproj file back to xxx.vcproj. The only way I've found around this is to let it do everything as xxxv8.vcproj and then go in with vi or notepad and change xxxv8 to xxx in xxxv8.sln. I have to do this for v9 and v10 too. Is there a better way?
Battle 2: VS allows you to put the binaries in a particular place but not the obj files. The obj files always go into the object directory. I put the binaries into bin\v8, bin\v9, bin\v10 or bin\x86\v8 etc. Some of the code uses 32-bit DLLs, so it cannot be agnostic. I'd like the objects to go into obj\v8, obj\v9, obj\v10 otherwise the build falls over if I do a compile for both VS2005 and VS2010. If I do 2005 first, there is a link error in 2010. If I do 2010 first, there is a link error in 2005. I basically need to wipe out the entire object directory before I start a new build system. Again, the only way I've found is to go into the vcproj files with notepad and change the object directory. Is there a better way?
Battle 3: When moving between the compilers, Clean Solution doesn't work. It doesn't clear away anything. I actually have to come out of VS, delete both the bin and object directories (before I changed it to obj\vx) and then it builds properly and Clean works again. Any idea why clean solution doesn't work when moving between compilers?