tfs c#-6.0

Las compilaciones C#6.0 fallan en TFS Build incluso con Microsoft.Net.Compilers instalados



c#-6.0 (1)

Tal vez use la versión del archivo .sln, tenga en cuenta esto, si la solución es con Target Version.

Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.25123.0 MinimumVisualStudioVersion = 10.0.40219.1

¿Puedes tratar de cambiar esto?

Mi compañía tiene TFS 2013.
Tengo un proyecto que usa las características de C # 6.0.
Mi equipo no tiene acceso directo al servidor de compilación. VS2015 aún no está instalado allí, pero las personas que administran el servidor están buscando instalar las herramientas de compilación de 2015.

Mientras tanto, he instalado el paquete Microsoft.Net.Compilers NuGet como se menciona en las respuestas a C # 6.0 TFS Builds y varias otras preguntas aquí.

Algunos proyectos en la solución ya lo tenían instalado: (un proyecto Asp.Net MVC 5 y un proyecto de API web).

Cuando se genera la solución, TFS usa el compilador Rosyln del paquete para algunos proyectos y el compilador predeterminado para otros.

  • He eliminado y vuelto a agregar el paquete.
  • Intenté cambiar entre la versión 1.0.0, 1.1.0 y 1.3.2 del paquete.
  • Abrí los archivos .csproj uno al lado del otro para buscar diferencias sutiles.
  • Creé varias soluciones y varias definiciones de compilación de los mismos proyectos para ver si alguna combinación estaba causando el problema.
    • Uno de los proyectos siempre se compila con el compilador predeterminado cuando forma parte de una compilación y con el compilador de Roslyn cuando se compila como parte de otra.

Los dos proyectos web nunca usan el compilador de Roslyn. Hay otras 3 bibliotecas, una aplicación de consola y una mano llena de proyectos que contienen pruebas de unidad / integración. Con la excepción del único proyecto (una de las bibliotecas) que se comporta de manera diferente según la construcción en la que se encuentre, todos los proyectos parecen consistentes en qué compilador usan.

¿Que me estoy perdiendo aqui? ¿Por qué TFS podría usar el compilador de paquetes para algunos proyectos pero no para otros?

Muestreo de errores de compilación: uso del nombrede:

SomeController.cs (53): The name ''nameof'' does not exist in the current context

un uso estático:

RedactedTests.cs (5): Identifier expected; ''static'' is a keyword RedactedTests.cs (5): Expected class, delegate, enum, interface, or struct

operador coalescente nulo:

InterestingClassName.cs (40): Invalid expression term ''.'' InterestingClassName.cs (40): Syntax error, '':'' expected InterestingClassName.cs (40): Invalid expression term ''.'' InterestingClassName.cs (40): Syntax error, '':'' expected

propiedad corporal de expresión:

MyClass.cs (11): ; expected MyClass.cs (11): Method must have a return type MyClass.cs (11): Type expected