对于不太清楚的标题,我很抱歉。Visual Studio是否优化传递引用?
我在Visual Studio(2010)中遇到了一个奇怪的行为。
比方说,我在我的解决方案三个项目:A,B和C
A has a reference on B
B has a reference on C
C has a reference on an assembly (log4net.dll)
所有这一切,被配置为复制本地真。
我负责的项目A和另外两个开发人员负责项目B和C.
项目B是使用位于项目下,在其类中的一个数(静态)方法。我正在使用B中没有使用任何C的其他类。
当我构建解决方案(项目A配置为主项目)时,我期望看到C及其引用程序集的结果输出文件夹的项目A.实际发生的是,C的结果被复制到B的输出文件夹,但没有出现在A的输出文件夹中。
我花了一些时间才弄清楚此原因A没有使用任何来自C(直接或间接)的东西。
所以问题是:它是一个内置的Visual Studio的优化功能还是我做错了什么?
是的,MSBuild绝对知道如何做到这一点。许多程序员拥有10个以上项目的解决方案,如果该功能无法正常工作,他们的工作会非常悲惨。您的问题中的信息没有给出任何提示,可能是错误的,请将MSBuild详细程度更改为“诊断”以获取详细的跟踪。由于您刚刚开始将这些项目合并在一起,实际上并不使用*参考是简单的解释。 –
@HansPassant:许多程序员确实拥有10个以上项目的解决方案,但这并不意味着他们中的一个会引用显式引用链中的所有其他项目。 –
这正是当然的要点。如果这些链条存在很容易,他们几乎从不以真正的解决方案做。但一切仍然正确复制。 –