5

我的解决方案/项目在关闭此特定项目的代码合同的情况下构建良好。

当我在我的项目上打开执行运行时合同检查时,构建失败。CC 重写器开始启动数百条消息,如下所示:

Could not resolve member reference: ....

看来这个问题是由通过libpaths参数传递给 ccrewrite 的项目引用的顺序引起的。当我将构建分开并在命令行上运行它时,我以特定顺序手动指定对 libpaths 的引用,ccrewrite 工作,构建完成。

例如

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 :)

这对我来说似乎有点奇怪,我认为 ccrewrite 应该能够处理任意排序,特别是因为提供的“损坏”排序是 msbuild 传递给 Microsoft.CodeContracts.targets 文件/ccrewrite 的一个,但是那是CC家伙的问题。我还在 3 台不同的机器上对此进行了测试,结果相同,因此它要么是 ccrewrite 问题,要么是 ccrewrite 不喜欢的特定 csproj 中的一些奇怪的东西。

我想知道的是,我可以确保我的参考项目的特定顺序,沿着链传递到 CC 目标文件吗?我会假设构建引擎将使用它在项目 csproj 文件中读取的顺序,在ItemGroup//ProjectReference元素下,但事实并非如此。

有任何想法吗?

4

1 回答 1

1

这是工具中已识别的错误,已在最新版本v1.4.31130.0 2010-11-30 中得到解决。

于 2010-12-06T17:34:05.910 回答