0

我正在研究一些我继承的东西,这些东西的项目结构有点凌乱。一些项目引用了预期安装在 GAC 中的主互操作程序集 (PIA)。解决方案文件夹中有一条注释(总结)“在构建此项目之前,首先构建 X、Y 和 Z 并在 GAC 中手动安装它们”。嗯,这并不真正有利于自动化或持续集成,是吗?

我想让这个构建在 TeamCity 构建服务器上工作,构建代理将在没有在全局程序集缓存 (GAC) 中安装 PIA 的机器上运行。所以构建会失败。我不想在每台构建代理机器上都安装这些 PIA,我需要构建是自包含的,因此它可以从干净的源代码签出构建,轻松搞定。所以这个问题是双重的。

  1. 如果对 GAC 有任何依赖关系,我如何构建构建以使其自包含并且不会中断?
  2. 如果 (1) 成功,这将如何影响部署到最终用户桌面,必须将 PIA 安装到 GAC?

我会感谢 Stack Overflow 社区的专家建议。

4

1 回答 1

0

我只需添加一个构建步骤,将 X、Y 和 Z 安装到 GAC,然后完成构建、运行单元测试等。

完成后,它会从 GAC 中卸载。

让您的构建“独立”的唯一方法是停止依赖 GAC 安装的程序集。这不是构建服务器配置问题,而是程序集架构问题。如果可能的话,将那些在构建时复制到其他项目的 bin 文件夹的常规程序集引用。

这使得最终用户部署变得非常容易 - 您可能可以在没有 GAC 安装的情况下利用 Click-Once 部署。

于 2009-06-05T17:29:24.960 回答