非常奇怪的构建问题

时间:2010-03-26 19:48:46

标签: visual-studio-2005 build c++-cli

这个让我难倒了一年多,看起来很奇怪,真的很模糊。当我构建我的解决方案时,它抱怨缺少引用的DLL。当我重建它时,问题就消失了。每当我做一个干净的时候,它就会返回,即必须在成功之前尝试两次构建。

这很模糊,但如果有必要,我可以更好地解释解决方案结构。由于解决方法只是建立两次,我从来不打算给它更多的关注,但它非常烦人。

此外,构建失败,因为似乎DLL不存在,因此由于DLL中缺少类型而失败后引用它的代码失败。下次我启动构建时,它可以正常工作。

更新

  • 引用的DLL是外部的(来自CodePlex的ValidationFramework),位于源树中。
  • 我的项目都没有复制DLL,只有其中一些引用它。
  • 这在Debug和Release版本中都会发生。

刚刚发现与项目A相关的项目A引用了ValidationFramework.dll,项目B也是如此,但项目B引用项目A.现在,当构建错误发生时,它总是在编译器转到项目B时,即项目A始终在第一次和第二次构建尝试时成功构建。

此外,当项目B失败时,我可以一遍又一遍地点击“Build”而不起作用,它确实需要“Rebuild”,所以无论“修复”发生的问题都发生在构建项目B之前(如问题本身也可能。)

2 个答案:

答案 0 :(得分:1)

缺少的DLL是否是您工作区中构建的项目之一?您是否已设置项目依赖项,以便在构建利用项目之前必须构建DLL项目?

答案 1 :(得分:0)

这听起来很模糊。我可能在vs.net 2003或2005中经历过这个,我不记得了。但它表现得像这样:

在调试版本中,引用的C ++ / CLI将被正确复制到正在使用的程序集文件夹中,但是当我发布版本时,它会突然中断,因为引用项目无法找到它们。事实证明这是一个VS.NET错误,我认为它已在服务中修复,但在此期间,我添加了一些后期构建步骤,以便通过强力将程序集移动到需要的位置。

您的调试版本似乎每次都有效吗?