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

时间:2011-06-06 12:25:16

标签: asp.net

我是.net的新手。今天我创建了一个样本。在该示例中,我使用N层架构将数据存储在数据库中。如果我想在其他项目中使用BL或DAL方法(我的意思是UI中的BL方法或BL中的DAL方法),我找到了两种方法。

第一个是 - 右键点击项目<<添加参考<<在项目选项卡中选择项目

第二个 - 右键点击项目<<添加参考<<在“浏览”选项卡中选择DLL

有人能告诉我两者之间是否有任何区别,因为两者的工作方式相同。这样的DLL比Project Reference更好。如果是,那么有什么好处?

提前致谢。

此致 莫希特库马尔。

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

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

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

HTH

答案 2 :(得分:0)

2之间的差异已经得到解答,但只是为了补充一点,我认为VS中2的唯一区别是,如果你添加项目引用它仍然添加一个普通的dll引用,除了引用是项目二进制文件的调试位置(即bin \ debug \ project.dll),实质上你可能只是以相同的方式添加引用并直接指向最新编译的dll。

答案 3 :(得分:0)

我发现这两种方法之间存在非常有趣的区别,但在有两个项目的情况下,一个项目在多个开发人员之间共享,另一个项目由每个开发人员共享。

让我们说共享VS项目称为projectS,私有项目称为projectP

现在,如果目标是集中开发,并且开发人员需要从projectP和projectS访问源定义,以便在VS中按“F12”或“Go To Definition”将带来完整的定义,那么我们必须使用Project Reference而不是DLL引用,否则按F12将带来编译后的“元数据”中的定义,不包括所有开发者注释和其他相关数据。

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

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