代码之家  ›  专栏  ›  技术社区  ›  Rohith

在最终编译的程序集中.Net中项目依赖项和dll依赖项之间的差异

  •  6
  • Rohith  · 技术社区  · 16 年前

    假设我有两个项目A和B。A依赖于B。我可以用两种方式来指定:

    • 包含对B的已编译dll的引用作为a的依赖项。这在a的msbuild项目中显示为“引用”节点

    我的问题是,一旦我构建了A的程序集,这两种方法的最终输出是否有差异。

    我试着创建几个简单的项目来模拟这种关系,并尝试进行比较——但是不同的比较工具告诉了我不同的事情。在写一些逐字节比较这些文件的东西之前,我想知道你们是否知道这方面的情况。具体来说,如果我使用dll引用而不是项目引用,则生成的程序集的行为是否会有任何差异。

    2 回复  |  直到 16 年前
        1
  •  6
  •   Timwi    16 年前

    如果projectb源在projecta的两个版本之间没有改变,那么projecta输出的行为就没有区别。但是,如果项目B源已更改,将其作为项目a中的项目引用也会导致项目B重新生成。这种差异决定了您选择如何从项目A引用项目B:

    • 如果项目B是外部依赖项,您不自己开发,或者您没有要开发的源代码,或者如果它已经发布,并且您不能将修改后的版本与项目A一起发布,那么您需要引用预构建的项目B输出,以确保您使用最有可能在您的系统上的相同版本的项目B进行开发和测试用户的计算机。

        2
  •  3
  •   Hemant    16 年前

    添加为项目引用的好处是,如果需要,程序集“B”将自动生成。

    推荐文章