c# visual-studio tfs msbuild c#-6.0

Ejecutando TFS Build con C#6.0 características



visual-studio msbuild (2)

Hace poco comencé a usar el operador nameof() de C # 6.0 en mis proyectos. Ahora (al momento del registro, duh ...) Yo (o mejor: el agente de compilación) se negó a compilar el proyecto (que estaba compilando localmente bien) porque no pudo encontrar la expresión nameof() .

Comencé a instalar VS 2015 en el controlador de compilación, así como en el propio servidor TFS, pero fue en vano. ¿Cómo puedo obtener mi TFS 2013 Update 5 para compilar proyectos con características de C # 6.0?

Ya pensé en editar el BuildProcessTemplate, pero estamos usando la plantilla predeterminada en todas nuestras definiciones de compilación e incluso no sabía si esta era la forma correcta de hacerlo.


Puede instalar "Microsoft Build Tools 2015" en la máquina del agente de compilación y configurar la plantilla de compilación para usar esa versión de msbuild, o bien instalar el paquete NuGet de Microsoft.Net.Compilers en los proyectos que desea compilar con el nuevo compilador .


Tuve el mismo problema con TFS 2015. Mis definiciones de compilación estaban en el formato de definiciones de compilación XAML ; este formato no admite las características de C # 6, incluso si especificas /p:VisualStudioVersion=14.0 o 15.0 para los argumentos de MSBuild en la compilación avanzada parámetros de proceso.

En su lugar, utilice el nuevo formato de compilación. En Visual Studio 2017 (sí, puede usar VS 2017 con TFS 2015), está disponible en la sección "Definiciones de compilación" (tenga en cuenta que a continuación se encuentra la sección anterior "Definiciones de compilación XAML").

Si crea una nueva definición de compilación de esta manera, se abrirá un sitio web donde tendrá que crear los pasos de compilación. Los archivos binarios aparecen en la sección "Artefactos". Desafortunadamente, no encontré ninguna manera de convertir las definiciones de compilación XAML al nuevo formato, así que tienes que crearlo desde cero.

En el paso de compilación de Visual Studio, asegúrese de que el campo "Versión de Visual Studio" esté configurado en "Último".

Sugerencia: para obtener los archivos correctos en sus artefactos, debe definir patrones de minimatch. Puede encontrar la sintaxis here , en el ejemplo allí puede encontrar un patrón de archivo de copia para implementar un proyecto web.