一个VS2010的工程中,所有的参数都是保存在.sln/.vcxproj/.vcxproj.user 三个文件中的。
今天我试图修改一个debug参数,其中某一个参数读取的是默认值,也就是$(projectdir), 而我需要将它改成$(projectdir)\..\..\这个目录,于是我就动手改。然后保存,奇怪,我本以为会提示我某些文件需要checkout (比如sln或者vcxproj的)结果居然没有。那我改了该怎么上传呢?
同事提醒我,有的信息是保存在vcxproj.user中的,这个是本地设定,一般p4上是不管理的。我去查了下, 果然,所有debug的设定,都是被保存在vcxproj.user中的, 那怎么办呢?我又不能上传.user。那怎么办呢?浮现在我脑海的有三个问题。
1: 默认值为什么会是$(projectdir),从哪里读取的呢?我能改默认值吗?比如将默认值改成$(projectdir)\..\..\ 这样就不用去改工程设定了。
2 :这个$(projectdir)本身能改吗? 我直接把他改成我要的路径行吗?
3 :能让VS将这个改动的信息保存在.vcxproj而不是.user中吗?
查了个半天,结果上面三个都得出了否定的答案
1:所有的默认值都是从c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\ 这个路径下的文件中读取的能改他,但是同样,不能上传。
2:$(projectdir)这个值是不能改的,他表示整个工程的根目录
3:没找到方法
最后,只有用了一个比较原始的办法, 就是在VS2010的ide中把值改了,然后把.vcxproj.user中相关的改动信息,拷贝的.vcxproj中的相应位置,然后上传了.vcxproj。 不知道这个方法有没什么问题。不过即使没问题,也不是最优雅的做法? 怎么做更好呢?