You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Visual Studio的工作目录与生成的可执行文件目录一致

路径差异的核心原因

Visual Studio 启动调试时的默认工作目录为 .vcxproj 项目文件所在的目录,对应你场景中的 /workspace/demos/basic-triangle/;而手动双击 exe 运行时的工作目录是可执行文件自身所在的 /workspace/demos/basic-triangle/bin/Debug/,两者的起始路径差了两层,所以会出现相对路径解析结果不一致的情况。

方案1:修改 Visual Studio 调试配置对齐工作目录

这是最简单的对齐方案,只需要调整项目调试配置即可:

  • 右键 basic-triangle.vcxproj 项目,选择「属性」
  • 切换到「配置属性」→「调试」选项卡
  • 找到「工作目录」配置项,将默认值修改为 $(OutDir),这个VS内置宏会自动指向当前编译配置的输出目录(Debug/Release都适配,不需要硬编码路径)
  • 保存配置后,从VS启动程序的工作目录就和手动双击exe的工作目录完全一致。
方案2:基于可执行文件路径动态计算资产路径(更通用)

如果不想绑定IDE配置,也可以在代码层面彻底规避工作目录的影响:

#include <windows.h>
#include <filesystem>

std::filesystem::path get_executable_directory() {
    wchar_t exe_path[MAX_PATH] = { 0 };
    GetModuleFileNameW(NULL, exe_path, MAX_PATH);
    return std::filesystem::path(exe_path).parent_path();
}

// 调用示例
auto exe_dir = get_executable_directory();
auto assets_path = exe_dir / "../../../../engine/bin/Debug/assets";
Engine::setAssetsPath(assets_path.string());

该方案下无论程序被从什么位置启动,都能正确解析到资产目录,不受工作目录配置影响。


内容的提问来源于stack exchange,提问作者Gasim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:45:03