我在VS2008中有一个包含多个项目的C++解决方案。此解决方案包含运行时所需的文件,根据相对于解决方案目录(例如"Testing/data/" + "dataN.bin"
)的路径加载。在VS2008中全局更改“调试/工作目录”(不是每个用户)
为了实现此解决办法,我必须设置工作目录中的项目(S)设置,使其指向解决方案目录(例如Configuration Properties >> Debugging >> Working Directory = $(SolutionDir)
)。当我在自己的PC上进行调试时,这工作正常。但是,当不同的用户加载我的解决方案时,他的项目没有正确设置此属性。
我已将此设置追踪存储到项目文件(PROJECT.vcproj
)中,但不是存储在为其创建的用户特定文件(PROJECT.vcproj.DOMAIN.USER.user
)中。
我想一种方式,存储所有用户的这种设置,无需手动一次又一次地设置。
我的想法是:
- 找到一个方法来其存储在.vcproj文件(而不是用户特定的)或解决方案文件。
- 找到一种方法来创建一个“默认用户特定文件”,使所有用户特定的设置将开始(而且可以随意在以后修改)。
但是,我没有找到一个方法来做到任一。
多几个注意事项/限制:
- 我需要与许多大的文件,因为这些资源的工作,所以我想避免执行复制到不同的目录。
- 解决方案需要支持多种构建配置(调试,发布等)。
- 如果可能的话,我想避免前/后生成脚本,以保持简单(低优先级)。
任何帮助将提前赞赏...谢谢。
复制资源:这样做会诀窍,但是我拥有大量的资源来复制(在这种情况下是大型测试向量),而且每次复制这些资源都会浪费时间和内存。此外,我有多个构建配置(发布,调试,...),这将导致进一步的重复,我希望避免。因为这些数据被多个项目(以不同的方式)使用,所以这些向量在根目录“解决方案”目录中是合理的。另外,我想在解决方案的文件列表中维护顺序(关于目录结构)。 – scooz 2010-06-20 13:19:58
另一方面,将可执行结果复制到根目录解决方案目录不仅会导致根目录混乱,而且不能正确支持多个生成配置(将覆盖同名文件等)。 看来,出于调试目的,最合理的事情是改变工作目录。关于你提出的部署问题(我同意),我宁愿把它比调试时复杂(因为我调试的次数少于我的调试) – scooz 2010-06-20 13:23:05
这就是为什么我指出了xcopy/d选项的行为。你只支付一次副本。 – 2010-06-20 13:25:20