【问题标题】:VS 2010 build issue : reference issueVS 2010 构建问题:参考问题
【发布时间】:2012-03-12 12:52:40
【问题描述】:

我有多个项目的解决方案。

Bin/Lib/Include 的几个常用文件夹,例如Lib文件夹中所有导出的lib,Bin文件夹中的可执行文件和Include中的标题

例子

解决方案 - S 项目 A1 - DLL 项目 A2 - 执行 ... 项目安

项目 A2 依赖于项目 A1

我已经构建了完整的解决方案并删除了除 SDK(Bin\lib\Include) 文件夹之外的所有内容。因为它的大解决方案,所以我们利用这个导出的 SDK 并构建任何应用程序

现在我已经获取了完整的代码(A1,A2,... An)并且只打开了项目 A2,

但是当我构建它时,它给了我以下错误 无法打开输入文件 'C:\Code\Development\Src\A2\Debug7\A1.lib'

为什么它不从 common lib 文件夹中获取库。

它在 VS 2008 中运行良好,但在升级到 2010 后它从未运行过。

【问题讨论】:

  • A2对A1有什么样的依赖?它需要是一个@(ProjectReference),而不是一个程序集@(Reference)。
  • 无论 VS 2008 中存在什么,升级后我们都遇到了这个问题。所以看起来我需要删除项目到项目的依赖项并在解决方案中添加回依赖项。这也是本机应用程序代码。

标签: c++ visual-studio-2010 msbuild msbuild-projectreference


【解决方案1】:

我的猜测是,您的 A2 项目的引用文件夹中可能仍然有 A1 的代码版本。无论如何,这是需要检查的。

【讨论】:

  • 我已经删除了所有内容,并采用了最新的代码和 SDK(Bin\Lib\Include),如果我从驱动器中删除了 A1 项目,我还想分享一件事。它构建成功。
【解决方案2】:

我只能猜测依赖项保存在解决方案文件中,因此如果您只打开一个项目而不是原始解决方案,那么该信息就会丢失。

'C:\Code\Development\Src\A2\Debug7\A2.lib'

问:为什么项目 A2 会尝试打开自己的 lib 文件?当然,lib 文件是输出(静态库,或供其他模块使用的导入库)。

您可能会发现将 A2 项目的附加库目录(项目属性的链接器部分)设置为指向正确的路径会有所帮助 - 告诉它在哪里可以找到所需的库。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
  • 2012-12-21
  • 2011-12-25
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多