C# 针对多个框架

C# 针对多个框架,c#,visual-studio-2010,.net-framework-version,C#,Visual Studio 2010,.net Framework Version,我需要找到一种方法来自动构建一个包含22个C#项目的解决方案。问题是我需要创建两个独立的版本,一个针对.NET2.0框架,另一个针对.NET4.0框架 我一直在手动执行此操作,分别更改每个项目的目标框架并构建 我的问题是,在VisualStudio中是否有一种方法可以自动切换,即在生成后事件中,一旦第一个框架的生成完成,然后将所有项目切换到新的目标框架,并使用新框架启动另一个生成 顺便说一句,如果有帮助的话,我正在使用Visual Studio 2010。您可以有两个单独的解决方案,每个解决方案

我需要找到一种方法来自动构建一个包含22个C#项目的解决方案。问题是我需要创建两个独立的版本,一个针对.NET2.0框架,另一个针对.NET4.0框架

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

我的问题是,在VisualStudio中是否有一种方法可以自动切换,即在生成后事件中,一旦第一个框架的生成完成,然后将所有项目切换到新的目标框架,并使用新框架启动另一个生成


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

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

此解决方案采用的一种可能性是

  • 为每个目标平台制定一个项目
  • 源文件物理存储在其中一个项目中
  • 源文件链接到其他目标平台的项目(在Visual Studio中使用“添加为链接”)
只要项目是稳定的,这就可以很好地工作,也就是说,您很少添加新的源文件


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

从MSBuild的角度来看,是否可以卸载使用旧框架的项目、生成并恢复它们、再次更改框架并使用新框架卸载这些项目,我假设您可以创建其他构建配置(如默认配置、调试配置和发布配置),并基于这些配置为每个项目设置不同的目标框架。这样,您以后只需切换解决方案的构建配置,所有项目都应该自动适应。但是,不确定如何在VS中实现这一点。实际上,这似乎只是部分概述。我实际上正在考虑将其作为一个选项,但我更希望有一个解决方案需要管理,因为您必须记住,添加到一个解决方案中的任何新文件或类都应该添加到另一个解决方案中。由于这些将是不同的项目,所以我必须不断地来回修改。我认为VS本机不具备这种功能(没有第三方工具),但您可以尝试创建MSBuild脚本,甚至可以使用自动生成工具来配置框架。该项目包含文件和类,而不是解决方案。但是这个框架是在项目级别上的,所以不是一个解决方案。。。