2010-11-11 5 views
5

Ma solution/projet s'accorde parfaitement avec les contrats de code désactivés pour ce projet particulier.Échec de la réécriture des contrats de code - commande libpaths

Lorsque j'allume Exécutez Runtime Contract Checking sur mon projet, la génération échoue. Le rewriter CC commence à lancer des centaines de messages le long des lignes de:

Could not resolve member reference: ....

Il semble que ce problème est causé par l'ordre des références du projet transmis à ccrewrite par l'argument libpaths. Lorsque je décompose la construction et que je l'exécute sur la ligne de commande, je spécifie manuellement les références dans un ordre spécifique aux bibliothèques libpath, ccrewrite et à la construction.

par exemple

ccrewrite /level:4 /rewrite "/assemblyMode=standard" /throwonfailure /libpaths:"X Y Z" "target.dll" -- fails :(

ccrewrite /level:4 /rewrite "/assemblyMode=standard" /throwonfailure /libpaths:"Z Y X" "target.dll" -- compiles/rewrites :)

Cela me semble un peu bizarre, je l'aurais pensé ccrewrite devrait être capable de gérer un ordre arbitraire, d'autant plus que la commande fourni « cassé » est celui que msbuild transmet au fichier Microsoft.CodeContracts.targets/ccrewrite, mais c'est un problème pour les gars de CC. J'ai également testé ceci sur 3 machines différentes, avec le même résultat, donc c'est soit un problème de ccrewrite, ou quelque chose d'étrange dans ce csproj spécifique que ccrewrite n'aime pas. Ce que je me demande, est-ce que je peux assurer la commande spécifique de mes projets de référence, qui sont transmis le long de la chaîne au fichier de cibles CC? J'aurais supposé que le moteur de construction utiliserait l'ordre qu'il lit dans le fichier projet csproj, sous ItemGroup//ProjectReference éléments, mais ce n'est pas le cas.

Des idées?

Répondre

1

Ceci était un identified error dans l'outil, et a été résolu dans la dernière version, v1.4.31130.0 2010-11-30.

Questions connexes