代码之家  ›  专栏  ›  技术社区  ›  EAMann

多个开发人员如何使用相同的vcproj文件?

  •  0
  • EAMann  · 技术社区  · 15 年前

    我正在和另外两个开发人员一起做一个项目 FireBreath 。到目前为止,我已经能够让我的机器完美地工作,但我们需要通过Mercurial来协调我们的开发。所以我把我的文件推到了仓库,觉得一切都很好。

    不幸的是,这不起作用。

    各种各样的 .vcproj 组成解决方案的文件都包含对本地文件系统的硬编码引用。这对我来说很好,因为我不想把这个项目搬来搬去。但是,当您尝试在另一台具有不同文件结构(不同的驱动器号、不同的文件夹位置等)的计算机上构建解决方案时,一切都会中断。

    我使用firebeath的标准项目生成脚本(Python)和visualstudiocmake脚本(prep2008.cmd)生成解决方案文件。我可以做些什么来调整一些东西,以便其他开发人员可以使用相同的代码库?

    4 回复  |  直到 14 年前
        1
  •  3
  •   taxilian    15 年前

    为了确保每个人都能从sbi的回答中得到最新的评论,让我给你一个FireBreath devs的“明确”回答。

    您的生成目录是可丢弃的;您应该 从未 共享.vcproj文件。相反,您应该在更改项目时以及在每台新计算机上重新生成build/目录,就像使用CMake的任何项目一样。

    有关详细信息,请参见 http://colonelpanic.net/2010/11/firebreath-tips-working-with-source-control/

    作为参考,我是FireBreath的主要作者,我写了这篇文章。

        2
  •  5
  •   sbi    15 年前

    如果您的开发人员没有使用相同的build/make/project文件,这很快就会成为维护的噩梦。所以你应该 明确地 都用一样的 .vcproj 文件夹。(如果项目文件是从其他一些文件生成的,则这是一个例外。在这种情况下,按上述方式处理其他文件。)

    有两种方法可以处理不同机器上不同设置的问题。一是走各条路 相对于项目的路径 . 二是利用 环境变量 参考文件/工具/库/其他。IME最好对项目中可以签出的所有内容使用相对路径,其余部分使用环境变量。添加一个脚本,检查是否存在所有必要的环境变量,指出任何缺失的变量的含义,并将其作为一个构建前提来运行,因此无论谁试图获得一个新的构建机器并运行,都会得到提示。

        3
  •  2
  •   Michael Repucci    15 年前

    我不熟悉FireBreath,但是您需要使引用相对,然后在每台机器上重新创建相对结构。也就是说,如果您的项目位于“c:\myprojects\thisproject”中,并且有一个附加的include目录“c:\mydir\mylib\include”,那么后面的路径需要替换为“…\mydir\mylib\include”。

        4
  •  0
  •   Doc Brown    15 年前

    编辑:我重写了我的anyswer以使它更清晰。当我正确地告诉您时,您的问题是,FireBreath生成那些包含绝对路径的.vcproj文件,并且您希望在不同的开发计算机上使用这些.vcproj文件。

    我看到3种选择:

    1. 接受它。这意味着,确保每个团队成员对文件系统具有相同的文件结构/视图,工具安装在同一位置。

    2. 请FireBreath的作者更改其.vcproj生成器以允许相对路径、使用环境变量等。

    3. 如果1或2不起作用,请编写一个程序或脚本,将绝对路径更改为那些.vcproj文件中的亲属路径。每当需要重新生成FireBreath项目时,请运行此脚本。

    你不该做的是因为 FireBreath FAQ :不要手动更改.vcproj,这些更改将在下次重新生成项目时丢失。

    编辑 :似乎“选项4”是最好的解决方案:生成 .vcproj 每个开发人员各自的文件。希望我的建议也有帮助。

    推荐文章