2011-08-16 32 views
8

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

+2

是否有实际的差异是你的代码或在针对不同平台时参考哪些dll? – alun

+1

如果你没有在你的代码中使用任何.NET4功能,你为什么需要编译为.NET 4? .NET4项目可以毫无问题地使用.NET 3.5编译的二进制文件。 – jgauffin

+0

不,代码没有区别。所有程序集都引用2.0版本的库。 –

回答

9

我这样做只需要有两个csproj文件。然后,我可以轻松设置版本,参考,构建符号等。为了避免维护两个文件列表,我用毯子包括 - 即

我(在二级的.csproj):

<Compile Include="..\TheMainProject\**\*.cs" /> 

这是说“编译所有的.cs文件和在 .. \ TheMainProject下。

+0

谢谢,我想这就是我要去的。 –

1

你为什么需要这个?

随着柱/预构建的任务,你可以运行的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

但我仍没有看到任何situat离子在哪里我需要。

+0

定位完整运行时,silverlight,monodroid,...或者当然,如果你的代码在.net版本之间有点不同,也会有类似的情况。也许增加一个功能只支持新版本的框架。 – CodesInChaos

相关问题