2017-01-24 5 views
25

я получаю сообщение об ошибке в Visual Studio 2017, в частности, IDE0018 Variable declaration can be inlined.Инлайн декларация переменной не компиляции

Так что попробуйте использовать объявление переменной INLINE так, как это упоминается в Visual Studio 2017 г. примечания к выпуску, но я могу Не собираюсь компилировать мой проект.

Это не показывать никаких сообщений об ошибках, но вывод показывает «Rebuild All failed..... error CS1525: Invalid expression term 'int'»

Ошибка только появляется на выходе, а не фактической ошибки в списке ошибок.

Настоящий пример кода, который я использую, не работает.

if (int.TryParse(ExpYear, out int IExpYear)) 
    { 
    if (IExpYear < DateTime.Now.Year || IExpYear > DateTime.Now.AddYears(10).Year) 
    { 
     e += "Expiration Year is invalid.\n"; 
    } 
    } 
    else 
    { 
    e += "Expiration Year is not a number.\n"; 
    } 

Если я верну свое изменение, оно скомпилируется, как и ожидалось. Возможно ли, что я не использую компилятор C# 7?

спасибо.

Обновление: Я нашел настройки языка в Build> Advanced и установил его на C# 7.0. Построение проекта теперь дает мне эту ошибку:

CSC : error CS1617: Invalid option '7' for /langversion; must be ISO-1, ISO-2, Default or an integer in range 1 to 6.

+0

Ваш код компилируется просто отлично для меня в VS2017RC, как в .NET Framework, так и в проекте .Net Core. Не могли бы вы описать, в каком проекте это происходит, и либо предоставить полные шаги для воспроизведения или совместного использования всего проекта? Кроме того, вы используете последнюю версию VS2017RC? Я думаю, что есть некоторые обновления, которые могли бы повлиять на это. – svick

+0

Это означает, что вы можете каким-то образом получить старый компилятор. Это только в этом проекте, или вы видите то же самое, если создаете новый проект? – hvd

+0

Я уверен, что я запускаю последнюю версию VS 2017 RC, я запускаю программу обновления ежедневно. Я первоначально начал это приложение в VS 2015, а затем переместил его на VS 2017. Когда этот код не работал (и некоторые другие вещи), я решил перестроить его с нуля и создать новый проект на VS 2017. Проблема остается. – prudan

ответ

25

Я был в состоянии решить эту проблему, установив пакет Microsoft.Net.Compilers NuGet для v2.0.0-rc3, единственной версией, установленной перед был 1.3.2.

Я все еще не понимаю, почему ошибки intellisense и компилятора появятся, если установленный компилятор не поддерживает это.

+3

Вы должны заметить, что «Microsoft.Net.Compilers» не поддерживается Visual Studio для Mac. * P.S. Я не могу комментировать причину репутации, поэтому я мог написать только ответ. * –

+0

Для меня обновление пакета 'Microsoft.Net.Compilers' привело к тому, что проект работал нормально локально, но не смог построить ([динамическая компиляция] (https://msdn.microsoft.com/en-us/library/ms366723.aspx)) на сервере, на котором я публикую. Поэтому просто отметьте, что для поддержки этого может потребоваться несколько шагов. –

10

В случае выше ответ не работает для вас, так как она не работает для меня сделать следующее:

Откройте csproj файл и убедитесь, что вы следующий пакет, указанный в файле после того, как обновление, если да, удалите его.

<Import Project="packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" /> 

Далее, проверьте «Project ToolsVersion». Он должен быть 15,0, он, вероятно, составляет 14,0, поэтому вам нужно это изменить.

<Project ToolsVersion="15.0" .../> 

Затем просто перезарядите РЕШЕНИЕ, и вы хорошо пойдете. Помните, что если вы выберете «Обновить проект», это даст вам ошибку и не загрузит ее.

+0

Это был правильный ответ для меня, я обновился с VS 2015 до 2017 года, а также был установлен в прошлом Compilers 1.3.2. В csproj все еще была ссылка на него, даже после обновления до версии 2.0.1 –

+0

да это тоже для меня. У меня был огромный беспорядок в моем файле csproj. благодаря! – gsharp

+1

Странно, я попробовал это и получил ** [этот другой номер] (https://stackoverflow.com/q/32523580/1016343) ** впоследствии. Изменена версия инструментов от 12.0 до 15.0 и удалена импорт. – Matt

Смежные вопросы