Comme d'autres l'ont fait remarquer, Microsoft n'a pas donné la priorité aux contrats de code et à ses le soutien à long terme reste incertain (bien qu'il y ait a il y a eu quelques discussion en cours sur l'intégration au niveau de la langue via Roslyn).
A partir de 11 mars 2017 Cependant, le contributeur communautaire Yaakov a, au moins, mis à jour le code source pour inclure le Cibles de construction de Visual Studio 2017 (merci !). Cette version supporte à la fois la vérification statique lors de la compilation, ainsi que la validation à l'exécution à l'aide de CCRewrite
.
Note : Cette version ne pas fournir un support de configuration via le le volet des propriétés du projet . En tant que tel, les contrats de code devront être configurés en ajoutant manuellement les propriétés appropriées à l'élément csproj
fichier. Voir la réponse de @crimbo ci-dessous pour un liste complète des propriétés .
Malheureusement, bien que ces mises à jour aient été fusionnées dans la branche de code principale, elles ne sont pas reflétées dans la version de l'UE. Distribution sur le marché ou le fonctionnaire Paquet NuGet . En tant que tel, vous devez télécharger et compiler l'application code source à partir du référentiel (ce qui est facile ; il suffit d'utiliser la commande BuildCC.bat
).
Important : L'analyse statique pour les contrats de code a une dépendance codée en dur à l'égard de .NET 3.5 qui n'est plus installé par défaut, ni dans l'un, ni dans l'autre. Windows 10 ou Visual Studio 2017 . Vous devrez donc vous assurer que cette "fonctionnalité" est activée (ou le télécharger séparément ) ; sinon, vous obtiendrez une erreur de compilation.
Alternativement, à partir de 15 juin 2017 -et mis à jour ultérieurement le 6 février 2018-contributeur. Igor Bek a inclus cette mise à jour dans son Paquet NuGet donc l'approche la plus simple est d'ajouter simplement CodeContracts.MSBuild
à votre packages.config
via :
Install-Package CodeContracts.MSBuild -Version 1.12.0
Contexte : Igor Bek a d'abord rassemblé ce paquet en tant que preuve de concept pour l'équipe des contrats de code Il a ensuite servi de base à l'élaboration du paquet officiel NuGet (en v1.10.10126.2). Comme Microsoft n'a pas mis à jour le paquet officiel NuGet, le sien est maintenant le plus à jour.
Compte tenu de l'état actuel du support, je n'encouragerais pas les gens à adopter les contrats de code pour de nouveaux projets, mais cela devrait assurer la rétrocompatibilité pour les développeurs qui ont déjà investi dans les contrats de code pour des projets .NET Framework existants.
0 votes
Quelqu'un de Microsoft pourrait-il faire un commentaire ?
0 votes
Quelqu'un de l'équipe Microsoft VS ??? VS2017 fonctionne-t-il avec CodeContracts ?
3 votes
Question officielle sur github "CodeContracts ne fonctionne pas dans VS2017" #476 est ouvert, ainsi que Support de Visual Studio 2017 #451