DLL 引用之间的区别?和用途?



请任何人解释一下。这个问题有助于理解常见的事情

问题:

当您"通过浏览选项将DLL引用从一个项目添加到另一个项目,并将DLL引用从解决方案项目添加到另一个项目并将从一个项目复制粘贴到另一个项目"时,有什么区别?

我在谷歌上找到了答案

答:

添加项目引用

会将本地项目的 DLL 添加到引用它的项目中,每次编译解决方案时,该项目的更新 DLL 都会复制到另一个项目。 因此,当您完成生成过程时,如果您有 5 个项目,则每个项目都会重新生成其 DLL,并将该 DLL 复制到其引用中。

但:

我不知道这个过程是什么以及当我们从一个项目复制粘贴到另一个项目时有什么区别?

将粘贴从一个项目复制到另一个项目时,依赖项目会将其对已粘贴的文件的引用添加到项目解决方案目录中

复制粘贴一个项目的 dll 到另一个项目的目录,然后通过浏览到粘贴 dll 的目录来添加其引用。然后 VS 仅添加其引用并将该 dll 复制到其 bin 文件夹,并向您显示(允许您)它包含的所有方法和属性。

如果在源项目解决方案中执行任何更改(如添加或修改方法),则该项目的更新 dll 在依赖项目解决方案中不可用。

因此,VS仍然指向旧的dll文件,只是因为您添加了引用。因此,每当在源项目解决方案中进行任何更改时,每次都必须将更新的 dll 的引用添加到依赖解决方案中。

在第二种情况下:将源项目的引用添加到依赖项目解决方案中时,VS 始终将源项目中最新更新的 dll 获取到依赖项目中。因此,通过这种方式,您无需在每次编译代码或调试时都添加引用。

当您通过浏览到DLL来引用DLL时,VS会将其复制到依赖项目的输出目录中。

假设之后 DLL 已更新 - 无法保证 VS 会重新获取该更新的 DLL,并将其再次复制到依赖项目的输出目录 - 这意味着,即使您修复了另一个项目中的一些错误,这些错误也会保留在依赖项目中(因为它仍在使用该 DLL 的先前版本)。

在解决方案中添加对其他项目的引用时,VS 将始终采用从该项目输出的最新和更新的 DLL。

最新更新