【问题标题】:Targeting multiple frameworks针对多个框架
【发布时间】:2013-11-27 21:33:40
【问题描述】:

我需要找到一种方法来自动构建包含 22 个 C# 项目的解决方案。问题是我需要进行两个单独的构建,一个针对 .NET 2.0 框架,另一个针对 .NET 4.0 框架。

我一直在手动执行此操作,分别更改每个项目的目标框架并构建。

我的问题是在 Visual Studio 中有一种方法可以自动进行切换,在构建后的事件中,一旦第一个框架的构建完成,然后将所有项目切换到新的目标框架并使用新框架?

顺便说一句,如果有帮助,我正在使用 Visual Studio 2010。

【问题讨论】:

  • 你可以卸载旧框架的项目,构建然后恢复它们,再次更改框架并卸载使用新框架的项目吗?
  • 从 MSBuild 的角度来看,我认为您可以创建其他构建配置(如默认配置,DebugRelease),并且根据每个项目的这些配置设置不同的目标框架。像这样,您只需要稍后为您的解决方案切换构建配置,所有项目都应该自动适应。不过,不确定如何在 VS 中做到这一点。
  • 其实这个好像是部分概述了here

标签: c# visual-studio-2010 .net-framework-version


【解决方案1】:

您可以有 2 个单独的解决方案,每个解决方案包含所有 22 个项目。每个解决方案都将构建到不同的框架。您需要注意不要以其他方式不支持更改的方式编辑任何一种解决方案。

【讨论】:

  • 我实际上正在考虑将其作为一个选项,但我宁愿有一个解决方案来管理,因为您必须记住,添加到一个解决方案中的任何新文件或类都应该添加到其他。而且由于这些将是不同的项目,所以我必须不断地来回修改。
  • 我不认为 VS 本身具有该功能(没有 3rd 方工具),但您可以尝试创建 MSBuild 脚本,甚至使用可以配置框架的自动构建工具。跨度>
  • 项目包含文件和类,而不是解决方案。但该框架处于项目级别,因此不是解决方案......
【解决方案2】:

Dapper project 采用的一种可能性是

  • 每个目标平台都有一个项目。
  • 源文件物理存储在其中一个项目中
  • 源文件链接到其他目标平台的项目(在 Visual Studio 中使用“添加为链接”)

只要项目稳定,这可以相当好地工作 - 即您很少添加新的源文件。

如果您的项目正在发展,添加新源文件作为指向多个项目的链接的繁琐工作可能会成为一种负担。在这种情况下,您当前手动解决方案的自动化版本可能是最好的。例如。将整个项目复制到临时位置、更改目标平台并构建的脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 2017-08-16
    • 2016-05-18
    • 1970-01-01
    相关资源
    最近更新 更多