Visual Studio的调试配置存储在.user
文件中,该文件是用户特定的,传统上被源代码控制忽略。
我对工作目录参数感兴趣。我需要它在程序员的机器上保持一致,它的值为$outDir
而不是默认的$ProjectDir
。
我该如何解决这些矛盾?
答案 0 :(得分:2)
将其添加到</project>
标记之前的vcxproj末尾:
<PropertyGroup>
<LocalDebuggerWorkingDirectory>c:\same\for\everyone</LocalDebuggerWorkingDirectory>
</PropertyGroup>
我刚在2010年检查了它。
Visual Studio仍会在IDE中显示$(ProjectDir),因为我猜它会在.user
文件中找到它所填充的内容,但在构建任务期间,它似乎在处理.user
文件之后vcxproj;如果没有.user
中的覆盖,它似乎接受了在vcxproj中设置的内容。
答案 1 :(得分:2)
根据请求添加到@zeromus的答案中。
您可以像这样在vcxproj中设置工作目录:
<PropertyGroup>
<LocalDebuggerWorkingDirectory>c:\same\for\everyone</LocalDebuggerWorkingDirectory>
</PropertyGroup>
但是,要使其正常工作,需要在之后
进行定义<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
如果在导入之前定义LocalDebuggerWorkingDirectory
,它将被覆盖回默认位置。
您也可以使用相对路径。例如在一个项目中,我将其设置为:
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<LocalDebuggerWorkingDirectory>..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
因此它从vcxproj文件上方的一个目录开始。
在VS 2019中进行了测试。