Microsoft Code Contracts i CI build server

Przenosimy się do. Net 4 i jesteśmy bardzo zainteresowani wdrożeniem nowego projektu poprzez możliwości kontraktowe.

Jak wiemy Code Contract silnik wymaga instalacji Code Contract addin alt text
I VS Ultimate lub Premium (do sprawdzania statycznego).

Oto moje pytania:

  1. Czy mogę użyć przepisywania kodu umowy bez instalacji VS Na Ci build Server (TeamCity)?
  2. Czy Jest jakiś zadania msbuild do wykonania umowy sprawdzasz?
  3. Czy używasz walidacji kodu kontraktu z CI builds?
Author: Sergey Mirvoda, 2010-08-25

1 answers

Czy mogę użyć przepisywania kodu Umowy bez instalowania VS NA CI build serwer (TeamCity)?

Tak. Zainstaluj CodeContracts na serwerze kompilacji. (Jeśli odmówi instalacji na komputerze bez Visual Studio, po prostu skopiuj pliki wymienione poniżej i ich zależności na serwer kompilacji.) Po zainstalowaniu znajdziesz narzędzia CodeContract zainstalowane w %programfiles% \ Microsoft \ Contracts \ Bin. W tym katalogu znajdują się 4 pliki wykonywalne, którymi będziesz zainteresowany:
  1. Ccrewrite.exe-binarny rewriter. Powinno to zostać wykonane po kompilacji. Zamienia kontrakty w czeki uruchomieniowe lub cokolwiek określisz, w co chcesz je zmienić.

  2. Ccrefgen.exe - to może generować zespoły referencyjne umowy obok zespołów. Jest to przydatne, jeśli wysyłasz biblioteki DLL do spożycia przez inne strony.

  3. Cccheck.exe-sprawdzanie statyczne. Na serwerze kompilacji uruchamiasz to narzędzie nad swoimi złożeniami zawierające umowy, a wypluwa ostrzeżenia i komunikaty, gdy napotyka potencjalne problemy.

  4. Ccdocgen.exe-generuje dokumentację XML z umów zawartych w kodzie. Możesz tego użyć, Jeśli wysyłasz biblioteki DLL z umowami do konsumpcji przez inne strony lub jeśli potrzebujesz tylko wewnętrznych dokumentów na swoim kodzie.

Czy są jakieś zadania msbuild do wykonania sprawdzenia umowy?

Tak. Są 2 zadania MSBuild z CodeContracts: w tym samym katalogu instalacyjnym CodeContracts sprawdź folder MSBuild\[Framework version]. W tym katalogu znajdują się 2 pliki, które powinny ci pomóc: Microsoft.CodeContracts.cele i Microsoft.CodeContractAnalysis.cele.

Zgodnie z dokumentacją CodeContracts,

Rozszerzenie skryptu msbuild Microsoft .Kontrakt. cele zawiera dodatkowe tworzenie działań dla umowy runtime oprzyrządowanie i weryfikacja statyczna kroki. W wyniku takiego podejścia, możliwe jest użycie tego samego funkcjonalność podczas budowania z wiersz poleceń z poleceniem msbuild. Korzystanie z msbuild w projekcie lub rozwiązaniu który wykorzystuje Kontrakty włączone przez VS interfejs użytkownika wykona to samo działania jako odpowiednia budowa under VS.

Jak widzisz, możliwe i wspierane jest zintegrowanie Narzędzi Z CI buildami za pośrednictwem celów MSBuild.

Czy używasz kodu umowy Walidacja z CI builds?

Zakładając, że masz na myśli statyczne sprawdzanie ostrzeżeń/wiadomości, zrobiłem to osobiście, ale nie zrobiłem tego na dużym projekcie.

Mam nadzieję, że to pomoże!

Hat tip do książki Jona Skeeta C# in Depth w celu wyjaśnienia narzędzi wiersza poleceń.

 46
Author: Judah Himango,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-18 13:44:10