Construção do TFS 2013 .NET 4.6 / C # 6.0

Nós usamos o TFS 2013 como nosso servidor de compilation. Eu comecei um projeto C # 6.0 e estou tentando obtê-lo para construir. Eu estou usando os novos operadores condicionais de nulo e minha construção engasga. Eu tentei instalar várias coisas no servidor TFS, incluindo o pacote de segmentação e VS 2015. Eu tentei fornecer /tv:14.0 para os argumentos do MSBuild.

Configuração \ EntityEntityConfig.cs (270): termo de expressão inválido ‘.’
Configuração \ EntityEntityConfig.cs (283): termo de expressão inválido ‘.’
Configuração \ EntityEntityConfig.cs (283): erro de syntax, ‘:’ esperado
… etc.

Neste ponto, não tenho ideia do que mais tentar. Qualquer sugestão seria muito apreciada.

Pessoas que usam o TFS 2012 relataram sucesso usando:

/tv:14.0 /p:GenerateBuildInfoConfigFile=false /p:VisualStudioVersion=14.0 

como argumentos para o MSBuild. Talvez isso possa funcionar para você, mas até agora isso não funciona para meus agentes de criação do TFS 2013.

Atualização: finalmente consegui que isso funcionasse no TFS 2013. Aqui está o que eu tive que fazer:

  1. Instale o VS 2015 ou o Microsoft Build Tools 2015 (eu tenho os dois).
  2. Edite minha construção para usar um modelo de processo de construção chamado TfvcTemplate.12.xaml . Eu acho que qualquer modelo mais novo que este irá funcionar, mas o DefaultTemplate.11.1.xaml definitivamente não funcionará!)
  3. Defina os argumentos do MSBuild para /tv:14.0 Eu não precisei usar os outros dois que eu mencionei acima.

Parece que o argumento de comando /tv:14.0 não funciona como esperado. Veja: BuildActivity ignora a ToolsVersion

Como solução alternativa, você precisa personalizar o modelo de processo de construção:

  1. Abra o modelo no Visual Studio e localize a atividade Executar MSBuild para o Project MSBuild.
  2. Definir ToolVersion para “14,0”.
  3. Definir ToolPath para direcionar para MSBuild14 (por padrão: “C: \ Arquivos de Programas (x86) \ MSBuild \ 14.0 \ Bin”).
  4. Verifique neste modelo de processo de construção e re-enfileire a construção.

Se você optar por instalar o VS 2015 na máquina de compilation, há uma etapa importante: abri-lo para o primeiro uso e verifique se ele está licenciado. Caso contrário, você continuará a experimentar falhas de compilation.

Se você executar o DefaultTempalte.11.1.xaml, em seguida, localize a atividade msbuild (existem 2 neste modelo e seu label é “Executar MSBuild para Project”) e altere a propriedade ToolPath para o caminho do conjunto de ferramentas msbuild (para mim que era ” C: \ Arquivos de Programas (x86) \ MSBuild \ 14.0 \ Bin “).

Nada mais é necessário.

Se estiver usando o UpgradeTemplate.xml , basta alterar o “Executar o TfsBuild para a pasta de configuração”:

1.Set ToolPath para direcionar para MSBuild14 (por padrão: “C: \ Arquivos de Programas (x86) \ MSBuild \ 14.0 \ Bin”).

2. Verifique neste modelo de processo de construção e re-enfileire a construção.

Obrigado!

O processo de construção determina qual versão das ferramentas de construção você está usando. Uma definição de compilation de baunilha usa o modelo de processo de construção “DefaultTemplate.11.1.xaml”, que é configurado para usar o Build Tools 2013.

A maneira mais rápida de corrigir isso é simplesmente mudar para o “TfvcTemplate.12.xaml”

Selecione o modelo

Se você quiser modificar o modelo padrão, precisará fazer check-out em $ / [Project] /BuildProcessTemplates/DefaultTemplate.11.1.xaml e, em seguida, editar os argumentos para definir o BuildProcessVersion

Editar versão do processo de compilação