我有一个小项目,我想要该项目的 2 个编译版本:
- 一种针对 .NET 2.0 框架的
- 一个针对 .NET 3.5 框架的
一切顺利;我已经将我的项目置于持续集成之下(使用 CC.NET),并且我创建了 2 个 CC.NET “项目”。每个目标框架一个项目。
我不会过多介绍(不相关的)细节,但我的解决方案设置为针对 VS.NET 中的 .NET 3.5 框架。
我有 2 个 msbuild 任务:
- 为 .NET 3.5 构建解决方案的一项任务(简单易行)
为 .NET 2.0 构建解决方案的一项任务
在此任务中,我调用 MSBuild,并指定 TargetFrameworkVersion 应为 v2.0。我还定义了一些额外的构建条件(因此 .NET3.5 特定代码不会内置在针对 .NET2.0 的程序集中)。
到现在为止还挺好。一切正常。然而,现在的问题是:
我的解决方案有一些依赖项(对第 3 方程序集的引用)。在 VS.NET 中,我将这些依赖项的“本地复制”设置为 true。当 CC.NET 构建我的 .NET3.5 版本的程序集时,第 3 方依赖项确实被复制到了我的输出目录中。
但是,当 CC.NET 构建我的 .NET2.0 版本的程序集时,依赖项不会复制到我的输出目录中。(然后,这会导致我的单元测试失败)。
我现在的问题是:我如何对 msbuild 说,在构建我的项目的 .NET2.0 版本时必须将某些第 3 方引用复制到本地?或者,有没有其他方法可以实现这一点,因为我不想在我的构建脚本中再次指定每个依赖项。我猜这很快就会成为维护的噩梦。