如何忽略MSBuild 3.5上的可选参数错误

时间:2012-03-26 16:17:12

标签: asp.net msbuild-4.0

我正在使用Visual Studio 2010。

我已经下载了一个更新的类(即UpdatedClass.cs),它有一个带有可选参数的方法,例如:

public void DoThis(bool aValue = false) {...}

使用Visual Studio 2010,我可以编译它。但我无法用MSBuild做到这一点:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe /t:Rebuild /clp:ErrorsOnly D:\folder\mySolution.sln
ln
Microsoft (R) Build Engine Version 3.5.30729.5420
[Microsoft .NET Framework, Version 2.0.50727.5448]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

UpdatedClass.cs(29,94): error CS0241: Default parameter specifiers are not permitted

嗯,使用此编译器不允许使用可选参数。那么我可以在这个MSBuild命令中添加一个额外的参数来忽略这种错误吗?

或者我是否必须使用C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe编译项目? 关于asp.net项目这是否安全?

1 个答案:

答案 0 :(得分:4)

如果您使用的是C#4语法,则必须使用4.0编译器。这意味着您需要在要部署此代码的服务器上运行.Net 4.0。或者 - 重写代码不要使用默认参数,这并不难 - 只需添加这样的重载:

public void DoThis() {DoThis(false);}
public void DoThis(bool aValue) {...}