一個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。 不知道這個方法有沒什么問題。不過即使沒問題,也不是最優雅的做法? 怎么做更好呢?