到目前为止,我们的团队一直在使用 VSS,我们正处于迁移到 TFS2010 和 VS2010 的过程中。我们的大部分代码是 C++,我们使用了很多 3rd 方库,例如 Boost、OpenCV、OpenSSL 等。根据我阅读的最佳实践,我正在考虑在我们的多个解决方案和项目中处理 3rd 方标头和库的一些选项。
我为所有 3rd 方库创建了一个独立的 TFS 项目,并在每个库和每个版本中存储源/包含/输出。例如:
Dependencies\ -> Boost\ ->boost_ver1\* ->boost_ver2\* -> OpenSSL\ ->openssl-ver1\* ->openssl-ver2\**
我的 TFS 源代码树如下所示:
$\ -> Dependencies\ -> TeamProject1\ -> TeamProject2\ -> TeamProject3\
我们的 TeamProject(s) 可能包含文件夹树中不同级别的多个解决方案。
我为
dependencies.props
每个团队项目准备一个文件,给定团队项目的所有项目都导入到该文件中。该 .props 文件将相关的 3rd 方包添加到$(IncludePath)
和$(LibraryPath)
. 为了做到这一点,我假设 Dependencies 项目被映射到由每个用户每台机器的全局环境变量定义的文件夹。
我对这种方法有几个问题:
我不知道如何使它在构建代理上工作,因为我无法在构建定义的工作区映射选项卡中指定环境变量。我了解每次构建都会更改 BuildDirectory var 和 SourceDir var。
如何确保在开始构建任何 TeamProject 解决方案之前获得最新的相关第三方依赖项。
这是一个“好”的方法吗?