我正在研究一些我继承的东西,它有一些略显不整洁的项目结构。其中一些项目引用了预期安装在GAC中的主互操作程序集(PIA)。解决方案文件夹中有一个注释(总结)“在构建此项目之前,首先构建X,Y和Z并在GAC中手动安装它们”。嗯,这不是真正有利于自动化或持续集成,是吗?
我想让这个版本在TeamCity构建服务器上运行,构建代理将在没有在全局程序集缓存(GAC)中安装PIA的机器上运行。所以构建将失败。我不想在每个构建代理机器上安装这些PIA,我需要构建是自包含的,因此它可以从一个干净的源代码检查,汤到坚果构建。所以问题是双重的。
我很感激Stack Overflow社区的专家建议。
答案 0 :(得分:0)
我只需添加一个构建步骤,将X,Y和Z安装到GAC,然后完成构建,运行单元测试等。
完成后,它将从GAC卸载。
让您的构建成为“自包含”的唯一方法是停止依赖于GAC安装的程序集。这不是构建服务器配置问题,它是一个程序集体系结构问题。如果可能,请将那些只是常规程序集引用复制到其他项目的bin文件夹中。
这使得最终用户部署变得非常容易 - 您可以利用没有安装GAC的Click-Once部署。