c# – 最终编译程序集中.Net中项目和DLL依赖项之间的差异

前端之家收集整理的这篇文章主要介绍了c# – 最终编译程序集中.Net中项目和DLL依赖项之间的差异前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有两个项目A和B. A取决于B.我可以用两种方式指定:

>在同一解决方案中包含A和B,并将B指定为A的项目依赖项.这在A的msbuild项目中显示为“ProjectReference”节点.
>包含对B的已编译dll的引用作为A的依赖项.这在A的msbuild项目中显示为“Reference”节点

我的问题是,一旦我为A构建程序集,这两种方法之间的最终输出是否存在差异.

我尝试创建几个简单的项目来模拟这种关系并尝试比较 – 但不同的比较工具告诉我不同​​的东西.在写一些逐字节比较这些文件的东西时,我想知道你们是否对此有所了解.具体来说,如果我使用dll引用而不是项目引用,构建的程序集的行为是否会有任何差异.

解决方法

如果项目B源在项目A的两个版本之间没有变化,则项目A输出的行为将没有差异.但是,如果项目B源已更改,则将其作为项目A中的项目引用也将导致项目B重建.这种差异决定了您如何从项目A中引用项目B:

>如果您拥有项目B和项目A的来源,并且它们紧密耦合,或者如果它们都处于活动开发状态且项目B经常断开其公共接口的更改,则您希望将项目B作为项目引用.这将确保项目A始终在其构建中使用项目B的最新输出.>如果项目B是外部依赖项,您不是自己开发,或者您没有源代码,或者如果它已经已经发货且您无法运送带有项目A的修改版本,那么您希望引用前构建项目B输出,以确保您使用相同版本的项目B进行开发和测试,这很可能是在用户的计算机上.

原文链接:https://www.f2er.com/csharp/91213.html

猜你在找的C#相关文章