这两个引用有什么区别?

时间:2015-10-08 17:54:09

标签: .net visual-studio

我们有几个解决方案,其中包含多个项目。老实说,它很糟糕,有时当我们检查某些文件时,某些项目需要重建,而其他项目则不需要。无论如何,如果我在文本编辑器中查看实际的项目文件,我会看到:

<ProjectReference Include="..\admin.data\Admin.Data.vbproj">
  <Project>{some-random-numbers-and-letters}</Project>
  <Name>Admin.Data</Name>
</ProjectReference>

在其他项目中,我看到这样的引用:

<Reference Include="company.someProject">
  <Name>company.someProject</Name>
  <HintPath>bin\company.someProject.dll</HintPath>
</Reference>

有人可以解释这两种&#34;样式之间的功能差异&#34;参考文献以及它们是如何创建的?每次添加引用时,我总是右键单击References文件夹,添加,浏览,然后找到DLL。我不确定使用“添加引用”弹出窗口中的“项目”选项卡是否有所不同,或者是什么......?

如果它有所不同,那两个片段来自.vbproj文件,但我认为.csproj看起来是一样的。

2 个答案:

答案 0 :(得分:2)

如果项目包含在解决方案中,则使用“浏览”按钮选择DLL永远不会有任何意义。当IDE知道项目时,它可以更好地全面工作。在我的头顶:

  • 构建&gt; Clean将正常工作,实际清理引用的项目
  • 构建更智能,知道构建顺序和能够使用并行构建功能
  • 编辑+继续可以在您更改引用项目中的代码时使用
  • 调试工作会更好,看起来你引用了项目的Release版本。嗯,希望你做到了
  • “查找所有引用”命令可以将您带到包含引用的实际源代码行
  • “转到定义”命令将您带到实际的源代码行。
  • 从现在开始,当DLL的起源变得混乱并且源代码控制结果不具备所需的二进制文件时,从整个三年开始构建解决方案的麻烦就更少了。

故意从解决方案中删除项目并将其替换为文件引用的一个很好的理由是项目不再发生变化。通常是因为它是一个“基础”项目,其中微小的变化可能会影响整个解决方案并破坏现有代码的稳定性。或者当解决方案只有太多项目并且加载和/或构建时间太长时。

答案 1 :(得分:1)

一个引用了编译后的二进制文件(后者),另一个引用了解决方案中的另一个源项目(以前使用guid)。

是的, 你如何包含了参考资料。