TFS 2013 building.NET 4.6/ C # 6.0

nous utilisons TFS 2013 comme serveur de construction. J'ai commencé un projet C# 6.0 et j'essaie de le faire construire. J'utilise les nouveaux opérateurs null-conditionnel, et mes problèmes de construction. J'ai essayé d'installer plusieurs choses sur le serveur TFS, y compris le pack de ciblage et VS 2015. J'ai essayé de fournir /tv:14.0 aux arguments de MSBuild.

ConfigurationEntityEntityConfig.cs (270): Invalid expression term"."

ConfigurationEntityEntityConfig.cs (283): Invalid expression term"."

ConfigurationEntityEntityConfig.cs (283): erreur de Syntaxe,': "attendue

... etc.

à ce stade, je n'ai aucune idée de ce qu'il y a d'autre à essayer. Toute suggestion serait grandement appréciée.

35
demandé sur Wesley Lomax 2015-09-18 21:51:57

6 réponses

les personnes utilisant TFS 2012 ont rapporté un succès en utilisant:

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

comme arguments pour MSBuild. Peut-être cela pourrait fonctionner pour vous, mais jusqu'à présent cela ne fonctionne pas pour mes agents de construction TFS 2013.

mise à Jour: J'ai finalement obtenu que ça marche sur TFS 2013. Voici ce que je devais faire:

  1. Installer VS 2015 ou Microsoft Outils de génération de 2015 (j'ai les deux).
  2. éditer mon build pour utiliser un modèle de processus de construction appelé TfvcTemplate.12.xaml . Je suppose que n'importe quel modèle plus récent fera l'affaire, mais le Defaultemplate.11.1.xaml ne marchera certainement pas!)
  3. définit les arguments MSBuild à /tv:14.0 Je n'ai pas eu à utiliser les deux autres j'ai mentionné ci-dessus.
48
répondu Marson 2016-02-25 14:28:03

il semble que l'argument de commande /tv:14.0 ne fonctionne pas comme prévu. Voir: BuildActivity ignores ToolsVersion

comme solution de contournement, vous devez personnaliser le modèle de processus de construction:

  1. ouvrir le modèle dans Visual Studio et trouver le exécuter MSBuild pour le projet activité MSBuild.
  2. définit ToolVersion à"14.0".
  3. jeu de piste D'outils pour cible vers MSBuild 14 (par défaut: "C:\Program Files (x86)\MSBuild\14.0\Bin").
  4. Vérifier dans ce processus de construction du modèle et de la re-file d'attente de la construction.
19
répondu Vicky - MSFT 2017-05-23 12:02:32

si vous choisissez d'installer VS 2015 sur la machine de construction, il y a une étape importante: ouvrez-la pour la première utilisation, et assurez-vous qu'elle est sous licence. Sinon, vous continuerez à connaître des échecs de construction.

1
répondu Jim Roth 2016-03-07 21:15:58

si vous exécutez le Defaultempalte.11.1.xaml ensuite trouver l'activité msbuild (il y en a 2 dans ce modèle et leur étiquette est "Exécuter MSBuild pour le projet") et changer la propriété ToolPath au chemin de l'ensemble d'outils msbuild (pour moi qui était "C:\Program Files (x86)\MSBuild\14.0\Bin").

Rien d'autre n'est nécessaire.

1
répondu Kostas Xagoraris 2017-02-10 23:04:47

si vous utilisez Upgredetemplate.xml alors il suffit de changer le "Exécuter TfsBuild pour le dossier de Configuration":

1.Définir ToolPath pour cibler MSBuild 14 (par défaut: "C:\Program Files (x86)\MSBuild\14.0\Bin").

2.Vérifiez Ce modèle de processus de compilation et remettez la compilation en file d'attente.

Merci!

0
répondu Daniel Carvalho Liedke 2016-08-22 19:58:26

le processus de construction détermine quelle version des outils de construction vous utilisez. Une définition de construction vanille utilise le " Defaultemplate.11.1.XAML " modèle de processus de construction, qui est configuré pour utiliser les outils de construction 2013.

la façon la plus rapide de corriger ceci est simplement de passer au" TfvcTemplate.12.xaml "

Select Template

si vous voulez modifier le modèle par défaut, vous devez le vérifier (') extrait de $/[Project]/BuildProcessTemplates/Defaultemplate.11.1.xaml, puis éditez les Arguments pour définir la directive BuildProcessVersion

Edit Build Process Version

0
répondu Steztric 2016-12-16 12:23:11