gpt4 book ai didi

visual-studio-2008 - 在 VS2008 中全局更改 "debugging/working directory"(不是每个用户)

转载 作者:行者123 更新时间:2023-12-04 01:58:02 24 4
gpt4 key购买 nike

我在 VS2008 中有一个包含多个项目的 C++ 解决方案。此解决方案包含运行时需要的文件,这些文件根据路径 加载。相对于解决方案目录 (例如 "Testing/data/" + "dataN.bin" )。

为了使此解决方案起作用,我必须设置 工作目录设置 在项目中,以便它指向解决方案目录(例如 Configuration Properties >> Debugging >> Working Directory = $(SolutionDir) )。当我在自己的 PC 上调试时,这很好用。但是,当其他用户加载我的解决方案时,他的项目没有正确设置此属性。

我已经跟踪此设置不是存储在项目文件( PROJECT.vcproj )中,而是存储在为其创建的用户特定文件中( PROJECT.vcproj.DOMAIN.USER.user )。

我想要一种为所有用户存储此设置的方法,而无需一次又一次地手动设置。

我的想法是:

  • 想办法去将此存储在 .vcproj 文件中 (不是用户特定的)或解决方案文件。
  • 找到一种方法来创建“ 默认用户特定文件 ”,所有用户特定设置将从该文件开始(并且可以稍后随意修改)。

  • 但是,我没有找到任何一种方法。

    还有一些注意事项/限制:
  • 我需要使用许多大文件作为这些资源,因此我想避免执行到不同目录的复制。
  • 解决方案需要支持多种构建配置(调试、发布等)。
  • 如果可能,我想避免使用前/后构建脚本,以保持简单(低优先级)。

  • 任何帮助将不胜感激...提前致谢。

    最佳答案

    不存在这样的属性。还有更大的问题,这也需要在您部署解决方案后起作用。工作目录将不会成为“解决方案”目录,目标机器上没有。

    假设工作目录与 EXE 目录相同,您的工作会好得多。这将是调试和目标机器上的默认设置。您可以通过链接器设置完全控制 EXE 文件的位置。您可以通过获取代码中的 EXE 目录来保护自己免受使用另一个工作目录运行程序的快捷方式的影响,这样您就可以生成绝对路径。使用 GetModuleFileName(),传递 NULL 以获取 EXE 文件的路径。

    另一个标准解决方案是将 EXE 所需的任何类型的资源复制到与构建输出文件夹相对的文件夹中。您使用 Pre-Build 事件执行此操作,使命令行看起来类似于:

    if not exist "$(OutDir)\Testing" md "$(OutDir)\Testing"
    xcopy /d /s "$(SolutionDir)\Testing\*.*" "$(OutDir)\Testing

    请注意/d 选项如何确保仅在测试文件夹内容更改时才完成复制。

    关于visual-studio-2008 - 在 VS2008 中全局更改 "debugging/working directory"(不是每个用户),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3079128/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com