2012-06-29 95 views
21

我在Visual Studio 2010中一个简单的解决方案,其中包含一些静态库,几个DLL和可执行文件。项目引用和项目依赖关系有什么区别?

一些图书馆依赖彼此(例如DLL需要生成DLL本身之前建立了两个静态库项目),似乎有两种方式来实现这一目标:

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

2)我可以用鼠标右键单击DLL项目,并选择属性 - >框架和引用,然后添加一个新的参考。

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

+2

我建议使用项目引用添加到项目中,让Visual Studio找出构建顺序。通常不需要手动编辑构建顺序。 – FrankE

+0

是的,我的同事在这里告诉我同样的事情。我只是好奇的区别 – Emiliano

回答

21

一个“项目引用定义”和“项目依赖定义”之间的唯一区别是定义输出组件纳入/排除到/从主项目链接命令的元数据。微软希望你开始使用“框架和参考”对话框,并停止使用“项目相关性”对话框(现在,“项目相关性”对话框仍然存在,将来可能会被删除)。

这里有一个博客条目,谈到这一点,和其他“与VS2010项目设置的变化”,由Visual Studio的开发者之一:

http://blogs.msdn.com/b/vcblog/archive/2010/02/16/project-settings-changes-with-vs2010.aspx

+2

我偶尔会遇到在VS2013中的错误,其中一个项目的依赖不会创建构建依赖。这似乎是在发布但不包含调试版本中排除的项目的情况。它不一致和加重,但手动添加构建依赖项修复它。 – Wheezil

+0

对于Visual Studio 2015年,引用在属性表不再,但现在低于Project Explorer中的树项目。 – MicroVirus