这是一个初学者问题,但是......
如果你看一下上面的图片,就会添加“Bass.Net”dll作为参考,也可以直接作为项目中的文件。
有人能告诉我这样做有什么意义吗?
答案 0 :(得分:3)
没有理由,真的。可能是Visual Studio设置为显示不在项目中的文件(很难从图中看出),并且dll恰好位于主目录中。文字很清楚,额外的文件是
.net恰好与同一目录中的其他人一起,您需要将其添加为参考。
答案 1 :(得分:2)
在Windows中,DLL是dynamic link library,它将一组程序功能打包在一起。在此示例中,bass.dll通过此文件(以及它所依赖的任何文件)公开与音频处理相关的特性和功能。为了使用此功能,您需要解决方案中的引用,以便Visual Studio在编译时可以link it。然后,在构建应用程序时,通常会将DLL复制到输出目录。
这就是让代码正常工作所必需的,其余的只是偏好或惯例。有些人更喜欢在解决方案中包含项目目录中存在的所有文件,以便解决方案资源管理器反映文件系统。通常,您希望应用程序依赖于解决方案目录层次结构中的某个库,以便将整个应用程序打包在一起(例如,使源代码控制更容易使用)。但是,您不希望将此库放在BIN目录或Visual Studio生成的任何目录中,以避免意外删除。无论如何,引用是重要的部分,不需要项目或解决方案中的文件。
通常,您需要将外部库保留在源目录之外,所以我实际上不会推荐这种结构。我倾向于使用这样的结构,但同样,这也是首选:
答案 2 :(得分:1)
在项目和输出目录中包含这些内容允许最终执行代码引用它们,而不会在不同的机器上运行任何问题。
听起来,他们将引用dll放在项目目录中,从那里引用它们,并将它们包含在项目中。这样,当复制项目目录时,将使用它复制引用dll。此外,如果缺少引用dll,项目将在Visual Studio中进行投诉。
答案 3 :(得分:0)
如果程序集(在您的情况下为Bass.Net.dll)包含您要使用的类,则必须将对该程序集的引用添加到项目中。
答案 4 :(得分:0)
没有必要做的最好的事情是获取所有依赖项并将它们存储在一个单独的文件夹中,只引用它们不要将它们复制到您的解决方案中;)
答案 5 :(得分:0)
很难猜到为什么其他人会做某事,但如果我真的不得不猜测,我会说这个人想把所需的dll作为资源嵌入,以确保它可用于应用程序。我已经看到这种技术用于嵌入字体或声音,我不确定它是否适用于dll;但这只是猜测 当然,确保文件可用的最佳方法是创建一个部署项目,使用Visual Studio或其他一些安装工具来运行Wise或InnoSetup,仅举几例。
答案 6 :(得分:0)
在很多情况下,这实际上可能是一个好主意。在我看来,他们是3种类型的依赖
在第三种情况下,最简单的方法是在源代码库中存储DLL的副本。