在C#/ Visual Studio项目中添加引用是否导入库或只是引用它?

时间:2014-04-15 15:59:09

标签: c# visual-studio-2010

我需要在项目中使用外部DLL库。当我添加对该库的引用时,是我的项目导入它,还是只是在其位置引用DLL?

3 个答案:

答案 0 :(得分:1)

在编译时,它是对该位置的dll的引用。但是,一旦编译完成,引用的程序集可能会复制到项目的输出目录,即项目的dll或exe旁边,例如bin \ Release(可配置)。您可以通过更改引用上的“复制本地”属性来控制此行为。

在运行时,在多个位置搜索程序集,例如;放置主可执行文件/程序集的目录。有关详细信息,请参阅Locating the Assembly through probing

除非使用ILMerge,否则.NET不会在您的exe / dll中嵌入引用的程序集。

答案 1 :(得分:0)

定义你的意思" import"?你认为它被导入的地方?这是一个参考。当引用该文件时,该文件将被复制到输出中。

答案 2 :(得分:0)

当我从项目外部引用DLL时,我发现dll文件被bin / Debug或bin / Release文件夹复制。然后,链接在运行时被解析,所以虽然.exe可以移动,我仍然需要在我的路径中的那些DLL,否则我得到一个"缺少引用"错误。

在Linux发行版上通过mono运行C#项目时,这让我有点困扰,直到我记得也复制了.dll文件。然后它工作正常。