35 votes

Contrats Microsoft Code et serveur de build CI

Nous sommes de la migration vers .NET 4 et très intéressé par la mise en œuvre de la nouvelle Conception Par Contrat capacités.

Comme nous le savons Contrat de Code du moteur nécessite l'installation du Contrat de Code addin alt text
et VS Ultimate ou de la Prime (pour la vérification statique).

Voici mes questions:

  1. Puis-je utiliser un code contrat de réécriture sans l'installation de VS de CI, de Serveur de build (TeamCity)?
  2. Est-il msbuild tâches à exécuter le Contrat de vérification?
  3. Utilisez-vous des Contrat de Code de validation CI s'appuie?

46voto

Judah Himango Points 27365

Puis-je utiliser un code contrat de réécriture sans installation de VS de CI, de construire serveur (TeamCity)?

Oui. Installer CodeContracts sur le serveur de build. (Si elle refuse de l'installer sur une machine sans Visual Studio, il suffit de copier les fichiers répertoriés ci-dessous, et leurs dépendances, sur le serveur de build.) Une fois installé, vous trouverez les CodeContract tools est installé dans le répertoire %programfiles%\Microsoft\Contrats\Bin. Dans ce répertoire, il y a 4 fichiers exécutables que vous serez intéressé par:

  1. ccrewrite.exe - Le binaire graveur. Ce doit être exécutée après la compilation. Il transforme vos contrats en exécution des contrôles ou ce que vous spécifiez que vous voulez transformé en.

  2. ccrefgen.exe - Cela peut générer de référence du contrat assemblées à côté de vos assemblées. Ceci est utile si vous êtes d'expédition dll à être consommés par d'autres parties.

  3. cccheck.exe - La vérification statique. Sur le serveur de build, vous feriez exécuter cet outil sur votre assemblages contenant des contrats, et il va cracher les avertissements et les messages qu'il rencontre des problèmes potentiels.

  4. ccdocgen.exe - Cela génère de la documentation XML à partir de l'contrats dans votre code. Vous pouvez utiliser cette option si vous expédiez des dll avec des contrats à la consommation par d'autres parties, ou si vous avez juste besoin interne docs sur votre code.

Est-il msbuild tâches à exécuter le Contrat de vérification?

Oui. Il y a 2 MSBuild tâches d'expédition avec CodeContracts: dans le même CodeContracts répertoire d'installation, consultez le MSBuild\[version] dossier. Dans ce répertoire, il y a 2 fichiers qui devraient vous aider: Microsoft.CodeContracts.objectifs et Microsoft.CodeContractAnalysis.les cibles.

Selon le CodeContracts de la documentation,

Un script msbuild extension de Microsoft .Contrat. les cibles contient le supplément construire des actions pour l'exécution du contrat instrumentation statique et de vérification les étapes. Comme un résultat de cette approche, il est possible d'utiliser le même la fonctionnalité lors de la construction de la ligne de commande avec la commande msbuild. À l'aide de msbuild sur un projet ou une solution qui utilise des contrats activé via le VS interface utilisateur aura la même les actions que le construire en vertu de VS.

Comme vous pouvez le voir, il est possible et prise en charge d'intégrer les outils CI construit par les cibles MSBuild.

Utilisez-vous des Contrat de Code de validation CI s'appuie?

En supposant que vous voulez dire la vérification statique avec des avertissements ou des messages, ce que j'ai fait personnellement, mais je n'ai pas fait ça sur un gros projet.

J'espère que cela aide!

Astuce chapeau de Jon Skeet du C# Dans la Profondeur du livre pour l'explication des outils de ligne de commande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X