Declaración de variables inline no compilando


He estado recibiendo un mensaje en Visual Studio 2017, específicamente, IDE0018 Variable declaration can be inlined.

Así que intento usar una declaración de variable en línea de la forma en que se menciona en las notas de la versión de visual studio 2017, pero no puedo hacer que mi proyecto se compile.

No muestra mensajes de error, pero la salida muestra "Rebuild All failed..... error CS1525: Invalid expression term 'int'"

El error solo aparece en la salida, no como un error real en la lista de errores.

Aquí hay un ejemplo real del código que estoy usando que es fallar.

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";
  }

Si revierto el cambio, se compila como se esperaba. ¿Es posible que no esté usando el compilador de c#7 de alguna manera?

Gracias.

Actualización: Encontré la configuración de idioma en Build > Advanced y la puse en C# 7.0. Construir el proyecto ahora me da este error:

CSC : error CS1617: Opción inválida '7' para /langversion; debe ser ISO-1, ISO-2, por defecto o un entero en el rango 1 a 6.

Author: Bernard Vander Beken, 2017-01-25

2 answers

Pude resolver esto instalando el paquete Microsoft.Net.Compilers nuget para v2. 0. 0-rc3 , la única versión instalada antes era 1.3.2.

Todavía no entiendo por qué los errores de intellisense y del compilador se mostrarían si el compilador instalado no soportaba esto.

 34
Author: prudan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-02 08:59:09

En caso de que la respuesta anterior no funcione para usted, como no funcionó para mí, haga lo siguiente:

Abra el archivo csproj y compruebe si tiene el siguiente paquete referenciado en el archivo después de la actualización, si es así, elimínelo.

<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')" />

A continuación, marque la opción "Project ToolsVersion". Tiene que ser 15.0, probablemente es 14.0 aunque por lo que tiene que cambiar eso.

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

A continuación, simplemente vuelva a cargar la SOLUCIÓN y ya está listo. Tenga en cuenta que si selecciona "Recargar proyecto" dará un error y no carga.

 12
Author: Dominik Litschauer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-11 13:33:36