如果VSPROPS变量尚不存在,如何设置它?

时间:2012-10-19 06:51:36

标签: visual-studio git vsprops

说我有一个在解决方案中使用的.vsprops文件。在该文件中,定义了各种变量,例如int_dir用于中间构建结果,log_dir用于日志结果。

通常,这些变量设置为默认值(相对于解决方案)。

对我来说,我想将这两个变量设置为我的ramdisk(R:),即不再

$(SolutionDir)\intermediate

R:\myproject\intermediate

如果我直接更改.vsprops文件,源代码管理(Git)会将其标记为已修改。

在VSPROPS中是否有办法可以检查环境变量,如果未设置此变量,则使用默认值?

如果无法做到这一点,我也会对Git解决此问题的解决方案感兴趣(但不是--assume-unchanged而不是.gitignore,因为该文件中的其他更改可能是相关的)。

1 个答案:

答案 0 :(得分:2)

纯Git解决方案可以使用gitattribute filter driver

content filter

它将涉及在smudge上执行的git checkout脚本,该脚本将:

  • 检测是否要更改$(SolutionDir)(例如,测试包含更新路径的环境变量)
  • 检测到正确的文件(xxx.vsprops.tpl)内容(the script doesn't know the file names or path it operates on
  • .vsprops(模板文件)生成实际的.vsprops.tpl,该版本是版本化的版本(.vsprops不再版本化)

您可以添加一个clean脚本,该脚本可以保留(git commit.vsprops文件中完成的所有修改回.vsprops.tpl,但$(SolutionDir)除外1}}行。