如何同时为.Net 3.5和4编译项目

我需要为.Net 3.5和.Net 4.0编译一个项目。 这种做法最低摩擦的方法是什么? 如果我从另一个程序集引用此项目,如何确定目标是哪个运行时? 或者我应该直接引用二进制文件?

我这样做只需要两个csproj文件。 然后我可以轻松地设置版本,引用,构建符号等。 为了避免在两者中维护文件列表,我使用了一个包含 – 即

我有(在次要的.csproj中):

 

这说“ 。\ TheMainProject中编译所有.cs文件”。

您可以利用多重定位function。

基本上你会得到类似的东西:

   

有关详细信息,请参阅

  • 多目标:它是如何工作的?
  • 使用MSBuild定位特定的.NET Framework版本

你为什么需要那个?

使用post / pre build任务,您可以运行msbuild来定位不同的框架,请参阅参数“toolversion”

http://msdn.microsoft.com/en-us/library/ms164311.aspx

MSBuild.exe MyProject.proj /ToolsVersion:4.0

并看看

http://msdn.microsoft.com/en-us/library/ee395432.aspx

但我仍然没有看到任何我需要的情况。