请任何人解释一下。本课题有助于理解常见问题
问题:
当您通过“浏览选项”将一个项目的
DLL
引用添加到另一个项目并将“解决方案”项目中的DLL
引用添加到另一个项目并从一个项目复制粘贴到另一个项目时,有什么区别?项目'?
我在谷歌上找到了答案
答案:
添加项目引用会将本地项目的DLL添加到引用它的项目中,每次解决方案编译时,该项目的更新DLL都会复制到另一个项目中。因此,当您完成构建过程时,如果您有5个项目,则每个项目都会重建其DLL,并将该DLL复制到其引用。
可是:
我不知道这个过程是什么,以及从一个项目复制粘贴到另一个项目时的区别?
答案 0 :(得分:3)
当您将粘贴从一个项目复制到另一个项目时,依赖项目会将您粘贴的文件的引用添加到项目解决方案目录中
当您复制粘贴一个项目的dll到另一个项目的目录,然后通过浏览到粘贴了您的dll的目录添加其引用。然后VS只添加其引用并将该dll复制到其bin文件夹,并向您显示(允许)它包含的所有方法和属性。
如果您对源项目解决方案进行了任何更改,例如添加或修改方法,则该项目的更新后的dll在您的相关项目解决方案中不可用。
因此,VS仍然指向旧的dll文件,因为您添加了引用。因此,无论何时对源项目解决方案进行任何更改,都必须每次都将更新后的dll引用添加到依赖解决方案中。
在第二种情况下:当您将源项目的引用添加到依赖项目解决方案时,VS始终将源项目中最新更新的dll带入依赖项目。因此,每次编译代码或调试时都不需要添加引用。
答案 1 :(得分:1)
当您通过浏览它来引用DLL时,VS会将其复制到依赖项目的输出目录中。
假设之后更新了DLL - 没有保证VS会重新获得更新的DLL,并将其再次复制到依赖项目的输出目录 - 这意味着,即使你修复了另一个项目中的一些错误,那些bug会在依赖项目中持续存在(因为它仍在使用该DLL的先前版本)。
当您在解决方案中添加对其他项目的引用时,VS将始终使用从该项目输出的最新且更新的DLL。