我正在使用自动生成visual studio项目文件的程序。在这些生成的项目中,我希望有一个指定配置文件路径的#define。这将允许我在路径必须更改时不更改代码。在这条路径中,我需要能够使用环境路径,例如
%LOCALAPPDATA%\\\\Company\\\\Config.cfg.
此环境变量必须存在于运行时。在我的预处理器列表中,我有:
CONFIGURATION_PATH="%LOCALAPPDATA%\\\\Company\\\\Config.cfg".
不幸的是,在使用它时会改为:
C:\Users\Username\AppData\Local\\Company\\Config.cfg.
这意味着它将使用扩展路径进行编译。如果新用户运行该程序,则路径将是错误的。无论如何,当预处理器运行时,我可以阻止visual studio扩展环境变量吗?
人们可以想到这个问题还有其他解决办法吗?
答案 0 :(得分:1)
如documentation中所示,在msbuild中转义特殊字符的方法是%XX
,其中XX是字符的十六进制等效值。 (有时称为" URL编码")。因此,为了按字面意思使用百分比字符,您必须将其编码为%25
。环境变量名称%LOCALAPPDATA%
变为%25LOCALAPPDATA%25
等。