Как я могу игнорировать необязательный параметр ошибки в MSBuild 3.5 - PullRequest
5 голосов
/ 26 марта 2012

Я использую 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 Ответ

4 голосов
/ 26 марта 2012

Если вы используете синтаксис C # 4, вы должны использовать компилятор 4.0.А это значит, что вам нужно запустить .Net 4.0 на сервере, где вы собираетесь развернуть этот код.В качестве альтернативы - переписать код, чтобы не использовать параметры по умолчанию, это не сложно - просто добавьте перегрузку следующим образом:

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