【发布时间】:2012-06-30 13:08:30
【问题描述】:
我们有一个在 .Net 4.0 下运行的大型复杂系统。我们想开始介绍为 .Net 4.5 编写的代码,但不能(还)假设所有开发人员机器、构建机器和测试实验室都安装了 .Net 4.5。所以我正在寻找一种方法来编译 MSBuild 中的某些项目,使用磁盘上可用的程序集,在仅安装 .Net 4.0 的机器上。
根据文档,这似乎是可能的。 4.5 参考程序集在 msbuild 环境中可用,我一直在试验 TargetFrameworkVersion, FrameworkPathOverride and TargetFrameworkMoniker 属性,但到目前为止没有成功。
任何提示、建议或工作示例都会很有帮助。
【问题讨论】:
-
何必呢? .NET 4.0 参考程序集可以正常工作。如果机器安装了 .NET 4.5,那么应用程序将使用该版本运行,它不是像 .NET 4 那样的并行版本。在一台机器而不是另一台机器上使用 .NET 4.5 参考程序集只会产生损坏的构建。
-
我不明白你的评论。我正在寻找 MSBuild 设置,它可以在没有安装 4.5 的机器上编译为 4.5 编写的代码。
-
不明白,你希望4.5传送到机器上让构建成功吗?不仅仅是参考程序集,编译器也进行了相当大的更改以支持异步/等待。更不用说 msbuild .targets 文件了。
-
这不是关于传送,而是更多关于是否可以通过将二进制文件(尽可能多的,包括 CSC、MSBUILD 等)复制到构建机器而不是实际安装 SDK 来实现工作构建。 (顺便说一句,感谢您到目前为止的耐心,我最终会得到它......)
-
即使您提供 .NET 4.5 参考程序集,.NET 4 的 MSBuild 也应该无法处理这种情况。您必须安装 .NET 4.5,它也会更新 MSBuild。
标签: msbuild build-automation .net-4.5