debugging 如何在Visual Studio中设置调试工作目录的默认路径

weylhg0b  于 2023-01-09  发布在  其他
关注(0)|答案(1)|浏览(320)

使用VS 2017。
我只是花了相当多的时间想知道为什么相对路径不工作时,运行我的应用程序在调试会话中从VS(工作正常时,从CMD启动).显然,默认的工作目录是指向${ProjectDir}而不是${OutDir}.
我想更改默认路径,但由于我缺乏VS知识,我无法在IDE的设置中找到它。

**更新:**为避免混淆:我知道解决方案/项目属性(调试部分)中的设置。我正在寻找每当创建或导入新项目时设置目录的东西。

vsmadaxz

vsmadaxz1#

也许现在回答这个问题有点晚,但是...
此外,我使用VS 2013(出于商业原因),但我认为VS 2017应该以类似的方式工作。

我的解决方案:

.vcxproj文件中放入类似下面的内容,并保持VS-Gui属性对话框不变(或者将其恢复为 inherit-or-standard

<PropertyGroup>
  <my_workdir>$(SolutionDir)..\runtime\$(PlatformTarget)-$(Configuration)\</my_workdir>
  <LocalDebuggerWorkingdirectory>$(my_workdir)</LocalDebuggerWorkingDirectory>
</PropertyGroup>

重新加载解决方案后,您应该在属性对话框中看到您的设置$(my_workdir)
根据当前的构建配置,它可以扩展到..\runtime\x64-Debug左右,但这是一个品味问题。
我更喜欢尽可能使用解决方案目录的路径 * 相对 *。
"如果你想让这成为标准行为..."
查看一下你的.vcxproj文件(通常通过VS-〉AddNewProject生成),你会发现类似这样的内容:

<ImportGroup>
  <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
        Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
        Label="LocalAppDataPlatform" />
  . . .

$(UserRootDir)宏扩展到%HOME%\AppData\Local\MicroSoft\MSBuild\v4.0左右。您可以在那里(创建&)编辑*.user.props文件。
在您的示例中,您将把<LocalDebuggerWorkingDirectory>..定义放在这些文件中--就这样。
对于我自己,我不使用这种方法。
我使用$(SolutionDirectory)中的一个./props/global_definitions.props文件,并将其导入(使用文本编辑器)到.vcxproj文件中。

相关问题