我正在使用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项目这是否安全?
答案 0 :(得分:4)
如果您使用的是C#4语法,则必须使用4.0编译器。这意味着您需要在要部署此代码的服务器上运行.Net 4.0。或者 - 重写代码不要使用默认参数,这并不难 - 只需添加这样的重载:
public void DoThis() {DoThis(false);}
public void DoThis(bool aValue) {...}