仅当 VSPROPS 变量不存在时如何设置它?
Posted
技术标签:
【中文标题】仅当 VSPROPS 变量不存在时如何设置它?【英文标题】:How to set a VSPROPS variable only if it does not already exist? 【发布时间】:2012-10-09 18:00:19 【问题描述】:假设我有一个用于解决方案的.vsprops
文件。在该文件中,定义了各种变量,例如用于中间构建结果的 int_dir
和用于日志结果的 log_dir
。
通常,这些变量会设置为默认值(相对于解决方案)。
对于我来说,我想将这两个变量设置到我的 ramdisk (R:
),即不再
$(SolutionDir)\intermediate
但是
R:\myproject\intermediate
如果我直接更改 .vsprops
文件,源代码管理 (Git) 会将其标记为已修改。
VSPROPS 中是否有一种方法可以检查环境变量,如果未设置此变量,则使用默认值?
如果这是不可能的,我也会对 Git 的解决方案感兴趣(但不是 --assume-unchanged
而不是 .gitignore
,因为该文件中的其他更改可能是相关的)。
【问题讨论】:
【参考方案1】:纯 Git 解决方案可以使用 gitattribute filter driver:
这将涉及一个在git checkout
上执行的smudge
脚本,它会:
$(SolutionDir)
(例如,测试其中包含更新路径的环境变量)
检测正确的文件(xxx.vsprops.tpl
)内容(the script doesn't know the file names or path it operates on)
从.vsprops.tpl
(模板文件)生成实际的.vsprops
,该文件是版本化的(.vsprops
不再版本化)
您可以添加一个clean
脚本,它将保留(在git commit
上)在.vsprops
文件中完成的所有修改回到.vsprops.tpl
,$(SolutionDir)
行除外。
【讨论】:
以上是关于仅当 VSPROPS 变量不存在时如何设置它?的主要内容,如果未能解决你的问题,请参考以下文章
仅当更新前不存在用户时如何将用户添加到索引 Elasticsearch
仅当实体尚不存在时,我是不是可以在 CloudFormation 中设置属性?