【发布时间】:2010-03-26 19:48:45
【问题描述】:
这个问题让我困惑了一年多,看起来很奇怪而且很晦涩。当我构建我的解决方案时,它抱怨缺少引用的 DLL。当我重建它时,问题就消失了。每当我进行清理时,都会返回,即必须尝试构建两次才能成功。
这是含糊的,但如果有必要,我可以对解决方案结构给出更好的解释。由于解决方法是简单地构建两次,我从来没有费心给它更多的关注,但它非常烦人。
此外,构建失败是因为 DLL 似乎不存在,因此在之后引用它的代码由于缺少 DLL 中的类型而失败。下次我启动构建时,它工作正常。
更新:
- 引用的 DLL 是外部的(来自 CodePlex 的 ValidationFramework),位于源代码树中。
- 我的所有项目都没有复制 DLL,只是其中一些项目引用了它。
- 在 Debug 和 Release 版本中都会发生这种情况。
刚刚发现添加项目 A 引用 ValidationFramework.dll 相关,项目 B 也是如此,但项目 B 引用项目 A。现在,当发生构建错误时,总是当编译器转到项目 B 时,即项目A 在第一次和第二次构建尝试时总是成功构建。
此外,当项目 B 失败时,我可以一遍又一遍地单击“构建”,但它确实需要“重建”,因此无论“修复”正在发生的问题发生在构建项目 B 之前(因为问题本身也可以)。
【问题讨论】:
-
您的所有 .dll 是否都包含在项目中,或者您是否在文件系统中引用了 dll?你有没有在构建事件中复制 .dll 的项目?
-
@vfilby - 查看问题更新。
标签: visual-studio-2005 build c++-cli