Need insight as to how VS2008 parses vcproj files
-
elephant me. First, don't tell me to upgrade, for this project I'm stuck on VS2008 for an embedded project. From time to time, I need to move a development project to new hardware. Lets say I start on LAPA (laptop A) and I copy it to LAPB. When I open the project (we'll call it Fred and my user name is chg) on LAPB, I now have to user project files in the folder: - Fred.vcproj - Fred.vcprog.LAPA.chg.user - Fred.vcprog.LAPB.chg.user Now I can see VS loading fred.vcproj and then adding a specific user's settings - sort of - but I cannot come up with a good reason why the machine name would be included. In any event, on LAPB, I would expect to pick up those settings. Instead, I find that some of my project settings have changed: - Deployment changes from the old setting to %CSIDL_PROGRAM_FILES%\fred.exe - Debugging remote executable changes from the default to %CSIDL_PROGRAM_FILES%\fred\fred.exe for ALL targets. This would be a minor irritation if we were just talking about my example, but my actual application has over 80. Comparing the user vcproj files, I see where the RemoteMachine has changed as well as the RemoteExecutable. But if I update these in the new LAPB project file, I still get %CSIDL_PROGRAM_FILES% inserted. Any insight before I start slogging through this crap? some of my deployment settings default to whatever MS deems appropriate.
Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.
-
elephant me. First, don't tell me to upgrade, for this project I'm stuck on VS2008 for an embedded project. From time to time, I need to move a development project to new hardware. Lets say I start on LAPA (laptop A) and I copy it to LAPB. When I open the project (we'll call it Fred and my user name is chg) on LAPB, I now have to user project files in the folder: - Fred.vcproj - Fred.vcprog.LAPA.chg.user - Fred.vcprog.LAPB.chg.user Now I can see VS loading fred.vcproj and then adding a specific user's settings - sort of - but I cannot come up with a good reason why the machine name would be included. In any event, on LAPB, I would expect to pick up those settings. Instead, I find that some of my project settings have changed: - Deployment changes from the old setting to %CSIDL_PROGRAM_FILES%\fred.exe - Debugging remote executable changes from the default to %CSIDL_PROGRAM_FILES%\fred\fred.exe for ALL targets. This would be a minor irritation if we were just talking about my example, but my actual application has over 80. Comparing the user vcproj files, I see where the RemoteMachine has changed as well as the RemoteExecutable. But if I update these in the new LAPB project file, I still get %CSIDL_PROGRAM_FILES% inserted. Any insight before I start slogging through this crap? some of my deployment settings default to whatever MS deems appropriate.
Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.
With the disclaimer that I couldn't possibly try my suggestion on VC2008 (got rid of it long time ago) here is how I handle a similar issue. - Keep everything under Git source control - Add
*.user
to.gitignore
- Have everything setup once the way you like it on LAPA and LAPB. Now every time you want to transfer from LAPA to LAPB you dogit push
on LAPA andgit pull
on LAPB. That keeps all*.user
files the way you set them.Mircea
-
With the disclaimer that I couldn't possibly try my suggestion on VC2008 (got rid of it long time ago) here is how I handle a similar issue. - Keep everything under Git source control - Add
*.user
to.gitignore
- Have everything setup once the way you like it on LAPA and LAPB. Now every time you want to transfer from LAPA to LAPB you dogit push
on LAPA andgit pull
on LAPB. That keeps all*.user
files the way you set them.Mircea
Reasonable suggestion, but let's say I create a LAPC? Or I give the project to another developer? He/she then run into the exact same issue.
Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.
-
Reasonable suggestion, but let's say I create a LAPC? Or I give the project to another developer? He/she then run into the exact same issue.
Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.
Newer versions of VS can run happily without
*.user
file. If it's missing it will be recreated with some reasonable defaults. So in your case if you go to LAPC you do a git pull and than, the first time, you will have to adjust the.user
file to your liking. After that it will stay on that machine.Mircea
-
Newer versions of VS can run happily without
*.user
file. If it's missing it will be recreated with some reasonable defaults. So in your case if you go to LAPC you do a git pull and than, the first time, you will have to adjust the.user
file to your liking. After that it will stay on that machine.Mircea
You would *think* that. Even though it's obvious what changed, I can set that and it still misbehaves. I'll keep digging.
Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.
-
elephant me. First, don't tell me to upgrade, for this project I'm stuck on VS2008 for an embedded project. From time to time, I need to move a development project to new hardware. Lets say I start on LAPA (laptop A) and I copy it to LAPB. When I open the project (we'll call it Fred and my user name is chg) on LAPB, I now have to user project files in the folder: - Fred.vcproj - Fred.vcprog.LAPA.chg.user - Fred.vcprog.LAPB.chg.user Now I can see VS loading fred.vcproj and then adding a specific user's settings - sort of - but I cannot come up with a good reason why the machine name would be included. In any event, on LAPB, I would expect to pick up those settings. Instead, I find that some of my project settings have changed: - Deployment changes from the old setting to %CSIDL_PROGRAM_FILES%\fred.exe - Debugging remote executable changes from the default to %CSIDL_PROGRAM_FILES%\fred\fred.exe for ALL targets. This would be a minor irritation if we were just talking about my example, but my actual application has over 80. Comparing the user vcproj files, I see where the RemoteMachine has changed as well as the RemoteExecutable. But if I update these in the new LAPB project file, I still get %CSIDL_PROGRAM_FILES% inserted. Any insight before I start slogging through this crap? some of my deployment settings default to whatever MS deems appropriate.
Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.
Dusting this gripe off and putting it to bed. For a certainty, VS2008 creates project files on a per system and person basis. It is what it is. After multiple occurrences of having to slog through this nonsense, I finally came across the Import and Export Settings Wizard. Go to Tools -> Import Export and follow the steps. I have yet to find any documentation from Microsoft that starts with "So, you're moving to a new machine..."
Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.