添加项目引用与添加DLL引用

4
我是.NET的新手。今天我创建了一个示例。在这个示例中,我使用N层架构将数据存储到数据库中。如果我想在其他项目中使用BL或DAL方法(我的意思是在UI中使用BL方法或在BL中使用DAL方法),我发现有两种方法。
第一种方法是-右键单击项目<<添加引用<<选择项目选项卡中的项目
第二种方法是-右键单击项目<<添加引用<<在浏览选项卡中选择DLL
请问这两种方法之间是否有区别,因为它们都可以工作。 DLL方式比项目引用更好吗?如果是,则有什么好处?
提前感谢您的回答。
敬礼, 莫希特·库马尔。
4个回答

4
正确的做法是添加项目引用。
其中最重要的区别之一是,当您更改所引用的项目时,项目引用会自动更新。
例如,如果您将DAL方法从GetEmployees()更改为GetAllEmployees(),则可以立即在BL类中使用GetAllEmployees(),而无需先编译DAL。

1

当引用是解决方案的一部分时,通常使用项目引用。这样,始终使用相关的最新代码。

当引用是第三方组件或不是解决方案的一部分时,您将引用一个程序集。这种方式相对静态,因为您将使用由程序集表示的版本的代码。因此,对程序集的任何更改都需要您物理上用更新的dll覆盖引用的程序集。

希望对您有所帮助


0

我发现了两种方法之间非常有趣的区别,但是在拥有2个项目的情况下,一个是共享给多个开发人员使用的,另一个是每个开发人员私有的。

假设共享的VS项目名为projectS,私有项目名为projectP

如果目标是要进行集中式开发,并且开发人员需要从projectP和projectS访问源定义,以便在VS中按下“F12”或“转到定义”时可以带来完整的定义,则必须使用项目引用而不是DLL引用,否则按下F12将从编译的“元数据”中排除所有开发人员注释和其他相关数据,而不是从源定义中获取。

当从projectP中添加对projectS的项目引用时,VS将使用projectS中的源定义解析对projectS中包含并从projectP中引用的文件的引用,而不是与所引用项目(ProjectS.dll)关联的DLL的“元数据”。 仍然会将projectS.dll包含在References文件夹中,并且开发时间、执行时间都没问题。

在添加DLL引用时,VS将从存储在ProjectS.dll中的“元数据”解析引用,即使被引用的项目已作为“现有项目”添加到projectP的解决方案中。这将允许执行时间正常,但是开发人员将无法按F12并转到projectS中的源定义,他/她必须手动从解决方案搜索区域进行操作。


0

这两者之间的区别已经得到了回答,但是我认为在VS中两者之间唯一的区别是,如果您添加项目引用,它仍会添加普通的dll引用,只不过引用是指向项目二进制文件的Debug位置(即bin\debug\project.dll),因此实质上您可能只需以相同的方式添加引用并直接指向最新编译的dll。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接