【问题标题】:What's the difference between project references and project dependencies?项目引用和项目依赖有什么区别?
【发布时间】:2012-06-30 19:52:41
【问题描述】:

我在 Visual Studio 2010 中有一个简单的解决方案,其中包含一些静态库、一些 DLL 和一个可执行文件。

一些库相互依赖(例如,DLL 需要在构建 DLL 本身之前构建两个静态库项目),似乎有两种方法可以实现这一点:

1) 如果我右键单击解决方案,我可以选择“项目依赖项...”并设置构建顺序

2) 我可以右键单击 DLL 项目并选择 Properties->Framework and References 然后添加一个新的引用。

#1 和#2 有什么区别?在 Visual Studio 2010 中表达两个项目之间的构建依赖关系的更好方法是什么?

【问题讨论】:

  • 我建议对项目使用添加项目引用并让 Visual Studio 确定构建顺序。通常应该不需要手动编辑构建顺序。
  • 是的,我这里的同事也跟我说过同样的话。我只是好奇区别

标签: visual-studio-2010 build


【解决方案1】:

“项目参考定义”和“项目依赖定义”之间的唯一区别是元数据定义了输出程序集包含/排除到主项目链接命令中/从主项目链接命令中排除。

在 Visual Studio 2010 及以后的版本中,Microsoft 希望您开始使用“框架和引用”对话框,并停止使用“项目依赖项”对话框(目前,“项目依赖项”对话框仍然存在,将将来可能会被删除)。

这里有一篇博客文章讨论了这一点,以及一位 Visual Studio 开发人员的其他“VS2010 的项目设置更改”:

https://devblogs.microsoft.com/cppblog/project-settings-changes-with-vs2010/

【讨论】:

  • 我偶尔会在 VS2013 中遇到一个错误,即项目依赖项不会创建构建依赖项。对于在 Release 中排除但不是 Debug 的项目,似乎就是这种情况。这是不一致和加重的,但手动添加构建依赖可以解决它。
  • 对于 Visual Studio 2015,引用不再位于属性表中,而是现在位于项目资源管理器树中的项目下方。
  • 添加引用后(通过解决方案资源管理器 > 引用),Visual Studio 会自动将引用的项目添加为项目依赖项,在删除引用之前无法删除。
猜你喜欢
  • 2014-12-09
  • 2020-08-31
  • 1970-01-01
  • 2015-11-11
  • 2015-11-13
  • 2011-08-18
  • 1970-01-01
  • 2014-04-20
  • 1970-01-01
相关资源
最近更新 更多