添加一个dll文件到C#项目(Adding a dll file to a C# project)

2019-06-23 22:13发布

这是一个初学者的问题,但...

的dll引用和DLL映像包含在项目文件http://a3.vox.com/6a00c2251e5b66549d00e398ca81eb0003-pi

如果你看看上面的图片,有“Bass.Net” DLL添加为参照,还可以直接作为项目文件。

谁能告诉我什么是这样做的意义何在?

Answer 1:

没有理由,真的。 这可能是因为Visual Studio的设置不在项目(很难从图片告诉)来显示文件和dll的恰巧是在主目录。 文本是相当清楚的,额外的文件

  • bass.dll
  • bassenc.dll
  • lame.exe

在.NET一个恰好是与其他在同一目录下,你需要将其添加为参照。



Answer 2:

在Windows中,DLL是一个动态链接库 ,它封装了一组编程功能一起。 在这个例子中,bass.dll通过这个文件(它依赖于任何文件)公开的功能和相关的音频处理功能。 为了使用这个功能,你需要在解决方案的参考,使Visual Studio可以挂靠在编译时。 该DLL将应用程序生成时,则通常被复制到你的输出目录。

这就是一切必要让代码正常工作,剩下的其实只是偏好或惯例。 有些人喜欢把所有存在于溶液中的项目目录中的文件,因此解决方案资源管理反映了文件系统。 通常,你会希望有库,您的应用程序,使整个应用程序打包在一起(使源代码控制使用更容易,例如)在某处您的解决方案目录层次结构取决于。 你不会希望把这个库的BIN目录或Visual Studio的产生,虽然任意目录,以避免意外删除。 在任何情况下,具有参考的重要组成部分,该文件中的项目或解决方案是没有必要的。

通常情况下,你要保持外部库出你的源目录的,虽然如此,我不会真的建议使用此结构。 我倾向于使用这样的结构,但同样,这是所有的偏好:

  • 来源:源代码和项目文件
  • 库:DLL文件
  • 支持:其他代码或项目,但应用程序的不实际的一部分(可能是部署脚本)


Answer 3:

有那些在你的项目和输出目录允许最终的执行代码中引用它们没有在不同的机器上运行的任何问题。

这听起来是他们把引用的DLL中的项目目录,从那里引用他们,也包括他们在该项目。 这样一来,当项目目录复制,引用的DLL将它复制。 此外,如果参考DLL文件丢失,该项目将在Visual Studio中抱怨。



Answer 4:

如果一个组件(Bass.Net.dll你的情况),包含要使用类,你必须向程序集的引用添加到项目中。



Answer 5:

没有一点的最好的事情就是让所有的dependenicies并将它们存储在一个单独的文件夹,只引用它们不将它们复制到您的解决方案;)



Answer 6:

这真的很难猜测,为什么别人没有的东西,但如果我真的猜,I'ld说这个家伙以为嵌入所需的dll的资源,以确保它是availale给应用程序。 我已经看到用来嵌入字体或声音这种技术,我不知道,如果它工作在所有的dll; 但它只是一个猜测。
当然最好的办法,以确保是可利用的将是创建一个部署项目,与Visual Studio或其他一些安装工具魔神明智或InnoSetup文件,只是仅举几例。



Answer 7:

这实际上可能是在很多情况下是个好主意。 在我看来,他们的3种类型的相关性

  1. 从.NET标准库组件。 决不包括那些在本地。
  2. 你希望其他开发商以安装为MSI的一部分或EXE安装包组件。 这通常意味着他们的强烈签署,并在GAC中的副本。
  3. 大会认为你不希望其他开发者通过MSI或EXE安装程序进行安装。 也许是因为你还没有在GAC第三方或内部图书馆。

在第三种情况下,最简单的做法是存储DLL的拷贝源回购。



文章来源: Adding a dll file to a C# project