11
votes

Quelle est la différence entre utiliser «devenv» et «msbuild» dans Cruisecontrol.net Builds?

Quelle est la principale différence entre l'utilisation de la balise et de la balise est dans cruisecontrol.net?

Je comprends qu'ils appellent différents exécutables, mais parfois, je reçois des résultats différents (en ce qui concerne le passage / échec au moment de la compilation), et j'aimerais savoir pourquoi il y a une différence entre les deux commandes de construction.


0 commentaires

3 Réponses :


7
votes

Pour nous, la principale différence est que Devenv traitera des projets d'installateurs (* .vdproj) pendant que Msbuild ne le fera pas. Si je me souviens bien, Msbuild est beaucoup moins ce que vous pardonnez quand il s'agit de trouver des assemblages référencés (surtout si les chemins sont légèrement éteints.)


2 commentaires

+1 pour la signalisation du projet VDProj. Quant à la dépendance, je pense que c'est la même chose pour vs et msbuild, tels que définis dans Microsoft.common.targets (voir ici: Beefycode.com/post/resolving-binary-references-in-msbuild.as px )


J'ai vu des cas où une solution construira dans VisualStudio, mais ne sera pas directement à partir de Msbuild en raison de l'assemblage non dans le bon emplacement. VisualStudio semble faire une recherche dans l'arborescence de code et corrigera les problèmes de chemin. J'avais supposé que devenv.exe ferait la même correction automatique, mais ce n'est peut-être pas le cas.



20
votes

Fondamentalement devenv (Visual Studio) enveloppe MSBUILD et ajoutez de nombreux propriétés spécifiques à Visual Studio.

Pour utiliser Devenv, vous avez besoin d'un studio Visual installé sur votre ordinateur. Pour utiliser MSBUILD, vous devez avoir uniquement le fichier .NET.


0 commentaires

5
votes

Une des choses que nous avons découvertes alors que nous avons déménagée à TFS (qui utilise Msbuild, au moins comme nous l'avons configurée) de VSS / Cruisecontrol.net (que je suppose que je suppose que devenv dans notre configuration) est que parfois les projets de projecteur Sortez de la synchronisation.

Ainsi, projetez un projet de références B et le fichier de projet ou de solution pour le projet A possède le projet de projet et de la voie du projet de projet B. Cependant, pour une raison quelconque, le projet de projet B. Le projet de projet a changé et que le projet de projet ou la solution de projet n'a pas été mis à jour pour le refléter.

Devenv va bien car il utilise simplement le chemin de fichier vers le fichier de projet du projet B ou y retourne. Msbuild, cependant, cesse de rhume à ce stade, car si les projets de projet ne correspondent pas, c'est un non-go. À ce stade, vous pouvez le réparer dans Visual Studio (i pense supprimer et ré-ajouter des travaux de projet) ou manuellement par le bloc-notes ou quelque chose.

Je vous laisserai à vous de décider qui est mieux (adhésion stricte au projetGuid ou à la clémence lorsque le chemin du projet est connu)


0 commentaires