我正在使用自动生成 Visual Studio 项目文件的程序。在这些生成的项目中,我希望有一个指定配置文件路径的#define。这将允许我在必须更改路径时不更改代码。在此路径中,我需要能够使用诸如
之类的环境路径%LOCALAPPDATA%\\\\Company\\\\Config.cfg.
此环境变量必须存在于运行时。在我的预处理器列表中,我有:
CONFIGURATION_PATH="%LOCALAPPDATA%\\\\Company\\\\Config.cfg".
不幸的是,在使用时它变成了:
C:\Users\Username\AppData\Local\\Company\\Config.cfg.
这意味着它使用扩展路径进行编译。如果新用户运行该程序,路径将是错误的。无论如何,我可以在预处理器运行时阻止 visual studio 扩展环境变量吗?
人们能想到这个问题的其他解决方案吗?
最佳答案
在 documentation 中找到,在msbuild中转义特殊字符的方法是%XX
,其中XX是该字符的十六进制等价物。 (这有时称为“URL 编码”)。因此,为了按字面意义使用百分比字符,您必须将其编码为 %25
。环境变量名称 %LOCALAPPDATA%
变为 %25LOCALAPPDATA%25
等
关于c++ - 在 visual studio 定义中停止环境路径扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40619056/