我有一个包含多个项目的解决方案。由于依赖关系,其中一个测试项目正在使用 .NET 4.0。我要构建的可部署项目是针对 .NET 3.5 编译器的。我们当前的构建脚本不够精细,无法在一个项目的基础上针对不同的 .NET 编译器。基本上我只能为解决方案中的每个项目使用一个编译器。
.NET 4.0 编译器是否足够智能以编译 3.5 代码?
解决方案结构
- 项目 1 .NET 3.5(可部署)
- 项目 2 .NET 4.0(用于在自动化构建周期中进行测试)
注意:我不能只忽略项目 2,因为我们的自动构建服务器会运行项目 2 中的单元测试。所有测试都必须在构建成功之前通过。
编辑:
我没有在 Visual Studio 中编译此代码。我们有一个在 Visual Studio 外部运行的自定义构建脚本。仅使用 1 个 .NET 编译器就足够聪明了。它使用此编译器来编译给定解决方案中的所有项目。构建脚本不关心项目是否定义为针对 3.5 或 4.0 进行编译。相反,它使用定义的编译器编译它们。
项目 1 不引用项目 2。项目 2 是一个包含单元测试的项目。我们的自动化构建工具仅编译项目 2 以运行测试。