我正在尝试创建包含路径的属性文件,以便在我的所有 C++ 项目中使用。
这是存储库结构。
/
/Libs
/Libs2
A.h
B.h
/Sln1
Sln1.sln
Proj1.vcxproj
Sln2.sln
Proj2.vcxproj
Props.props
我想使用属性文件 (Props.props) 将以下包含路径添加到两个项目 (C:\\Libs;C:\\Libs\Libs2)。
目前我的属性文件中有宏:
Name Value
ProjRoot C:\<path to rep root>
我在包含字符串中使用它:$(ProjRoot)\Libs;$(ProjRoot)\Libs\Libs2
此解决方案的问题是宏值中的硬编码绝对路径。如果我的存储库将被克隆到另一个驱动器上,我将不得不手动更改它。
我可以在宏值中使用相对于属性文件的路径吗?
即:
Name Value
ProjRoot ./
其中 ./将解析为将使用此属性文件的所有项目中的 Props.props 文件的路径。
我不能使用 $(SolutionDir) 和 $(ProjectDir),因为在不同的嵌套级别中可能有解决方案和项目,因此相对于它们的路径将不起作用。
谢谢。
最佳答案
做这件事应该手动编辑 Prop 文件并包括以下内容:
<PropSheetPath>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))</PropSheetPath>
这将创建带有属性文件夹的属性 PropSheetPath
。
在这里找到答案:
关于c++ - 在 visual studio 中包含相对于 props 文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44386059/