1

如果我有两个项目,一个输出 .dll 和 .lib 存根,另一个链接到 .lib 存根,并且通过扩展在运行时使用生成的 .dll,我该如何设置我的 TC 构建系统和 GIT 存储库干净地:

  1. 允许用户签出客户端应用程序、构建它并运行它,而无需查找最新的 .dll/.lib 文件
  2. 保持客户端应用程序的官方版本和 TC 版本同步;如果我签出并在本地运行,它的行为与 TC 构建版本相同,使用相同的 .dll 和 .lib

我最初的想法是在客户端应用程序中拥有适当的 .lib 和 .dll 文件(如 3rd 方二进制文件),然后在构建新的 .dll 时由 TC 签入;让 TC推入 git有点奇怪,但它似乎可以工作。或者,我可以在解决方案的预构建步骤中使用逻辑,该逻辑会发送给 TC 以获取最新的二进制文件,我不太喜欢这种方式,因为构建用户可能没有 TC 的凭据,而且他们可能实际上并不想获得最新版本。

如果第一个解决方案是要走的路,那么 TC 是否对此提供了简单的支持?还是我必须在构建过程中进行完整的签出、更新、添加/提交、推送?这些解决方案有没有我没有考虑过的陷阱?

4

1 回答 1

0

您可以拥有一个脚本,该脚本将从 TeamCity 构建配置下载开发人员机器上的库。该脚本将在本地使用。另请参阅http://confluence.jetbrains.com/display/TCD8/Patterns+For+Accessing+Build+Artifacts

在服务器上,您可以使用快照+工件依赖项来保持这些项目的同步构建:http ://confluence.jetbrains.com/display/TCD8/Build+Dependencies+Setup

快照依赖提供源同步,因此如果您更改库中的某些 API 并同时在依赖项目中使用它,您可以确定 TeamCity 将正确构建它。

于 2013-08-09T12:46:34.907 回答