Problèmes avec MSBuild OutputPath et OutDir dans TFS2010
Nous avons une très grande solution (300+) des projets et nous essayons de construire par MSBuild sur TFS2010.
Nous pouvons le construire par MSBuild sur tous les ordinateurs de développement, et sont dans le processus d'adoption de la TSF.
La structure de notre code est comme suit:
bin\Client
bin\Server
Framework\ClientFramework.csproj
Modules\Module1\Project1
Modules\Module2\Project2
etc.
Chaque projet a un parent OutputPath qui construit le code de la corbeille du Client ou du Serveur d'annuaire. Ainsi, par exemple, de Projet1.csproj a un OutputPath de "..\..\bin\Client".
Nous semblent avoir un problème qui, dans TFS MSBuild la OutDir est Fixe Path:
C:\Builds\MyProject\Binaries\
Si les choses deviennent confus lors de la résolution relative OutputPath sur le dessus de la OutDir
- ClientFramework va à C:\Builds\MyProject\Binaries\..\bin\Client
- Projet1 va à C:\Builds\MyProject\Binaries\..\..\bin\Client
- etc.
Nous avons également quelques Post construire des événements que copier une partie 3ème Partie de la dll à la corbeille les dossiers, ces chemins ne peuvent pas être résolus correctement.
Je pense que la solution c'est de tout construire à notre bin\Client, bin\Serveur de structure et de passer ensuite les Dossiers à partir de la corbeille pour les fichiers Binaires.
Toutes les idées sur la façon de le faire et comment nous devons travailler, sont appréciées, mais la mise à jour de nos projets existants peut s'avérer problématique, en tant que tout fonctionne avec VS, développeur de la ligne de commande construit et avec CC.net.
OriginalL'auteur DaveShaw | 2011-06-28
Vous devez vous connecter pour publier un commentaire.
Puisque c'est le premier lien qui apparaît avec une recherche Google de "TSF OutDir", je dois fournir une nouvelle solution. J'ai passé une journée entière à jouer avec OutDir, OutputPath, et de leur remplaçant, avec TeamBuildOutDir. Une meilleure solution est de définir la propriété MSBuild GenerateProjectSpecificOutputFolder. Il est livré avec .NET 4.5. Plus d'infos ici: http://blog.codeassassin.com/2012/05/10/override-the-tfs-team-build-outdir-property-net-4-5/
Votre lien est rompu. Pouvez-vous résoudre ce problème?
Le lien fonctionne toujours. Peut-être que c'était down hier en raison de la les attaques DDOS.
OriginalL'auteur Cameron Taggart
J'ai trouvé la réponse sur le site MSDN : http://msdn.microsoft.com/en-us/library/ff977206.aspx
Pour les futurs visiteurs: vous avez besoin pour personnaliser votre construction (en gros le fichier XML qui définit votre workflow de build) et il suffit de supprimer le "OutDir" paramètre. Ouvrez le fichier XML sous forme de texte brut, recherche pour OutDir, puis le retirer. Dans mon cas, j'ai juste enlevé
OutDir="[outputDirectory]"
, maintenant, il utilise le comportement par défaut de la copie de fichiers de sortie pour le OutputPath spécifié par chaque projet. À compter d'aujourd'hui (2016), avec .Net 4.5 vous avez également une autre solution, voir le haut-voté réponse et laGenerateProjectSpecificOutputFolder
MSBuild paramètre.OriginalL'auteur DaveShaw