Jad*_*ias 2 .net c# msbuild msbuild-4.0 c#-4.0
在目标框架为3.5的项目中,以下行使用MsBuild 4.0进行编译:
aEnumerable.Select(aMethod);
Run Code Online (Sandbox Code Playgroud)
但MsBuild 3.5要求我写:
aEnumerable.Select(item => aMethod(item));
Run Code Online (Sandbox Code Playgroud)
这两个二进制文件是否会运行没有.NET Framework 4.0但是使用.NET 3.5的计算机?
PS:虽然我展示了一个使用"方法过载推理"的例子,但其他"4.0"特征(例如"命名参数")也是如此.
这个问题的另一个标题可能是:C#4.0/Visual Studio 2010的哪些功能与.NET 3.5兼容?
你混淆了Msbuild和.NET框架.
Msbuild只是构建.NET项目的工具.构建.NET 4项目需要4.0版,但它也可以执行.NET 1.1,2.0,3.0,3.5,3.5 SP1. 就像使用Word 2010打开Word 2003文件一样.2010年将同时开放,但如果你给它一个2010年的文件,2003年将会崩溃
您的代码示例显示了在4.0版中添加到框架的不同内容.您无法在未安装.NET 4.0框架的计算机上执行.NET 4代码.无论是什么构建它,运行时将无法理解CLR,它将无法运行
至于msBuild本身: MsBuild 4.0是一个新版本,主要更新为支持.NET 4,但也有自己的功能.如果您需要这些详细信息,请参阅msbuild4的发行说明.
也就是说,只要正确配置了targetFramework,MsBuild 4就能完全生成.NET 3.5输出.(在将所有项目升级到.NET 4框架之前很久,我们将所有构建都移动到了MsBuild 4.0)
| 归档时间: |
|
| 查看次数: |
1160 次 |
| 最近记录: |