Visual Studio - 引用第三方 DLL

10

我正在使用 C# MVC 应用程序中的 Visual Studio 10。

我有一个关于 .dll 引用的问题。我正在使用一个第三方引用叫做 Ionic.Zip.dll。我不确定的是它目前指向我的 C: 驱动器上的一个位置。在我提交项目时,如何以及什么是最佳实践将该 .dll 放置到项目中,以便其他人也可以看到这个 .dll 而不会出现错误。

谢谢。


将“复制到输出目录”设置为True,以便将其放入bin文件夹中。 - vcsjones
复制到输出目录在哪里?我没看到它。 - Nate Pet
可能是c# DotNetZip的参考的重复问题。 - EdChum
@vcsjones 我认为这样做不太适合。从分享者的角度来看,bin文件夹是DLL文件存放的位置。如果其中某个用户清理或重新构建了项目或解决方案,则该DLL可能会丢失。而且据我所知,bin和obj文件夹的设计是可以仅删除它们,并且下一次成功构建项目。因此,最好将版本控制系统设置为忽略它们,以最小化存储库中的不必要混乱。 - Stewart
3个回答

14

我通常会在我的应用程序结构中放置一个Library文件夹,将第三方dll文件放入该文件夹,然后引用该dll文件。 然后确保将库文件夹添加到您的源代码控制中。 现在,任何拉取您的源代码的人都将拥有所需的dll文件。


是否提交库文件夹的选项取决于项目约定。如果您的团队不管理项目中的库,则我通常不会将任何内容提交到源代码控制中。此外,第三方库往往很大,可能达到几MB,这可能会减慢下载过程。另一种选择是编写安装文档,然后确保每个人都可以在安装过程中手动下载库。或者您可以编写构建脚本来自动化该项目的构建过程。但这很复杂。 - Yeo

2

如果没有Nuget包,只提供了第三方库怎么办?目前为止,我遇到的问题与Nate描述的相同,似乎唯一的解决方案是@csuroski在他的回答中建议的这种情况。 - pixel

1
最好的方法是使用Nuget
但在某些情况下,Nuget不可用或不兼容,因此像我们的朋友建议的那样,在应用程序结构中放置一个Library文件夹,将第三方dll放入该文件夹,然后引用该dll。然后确保将库文件夹检入源代码控制。现在,任何拉取源代码的人都将拥有所需的dll。

同意,在第三方库没有NuGet可用的情况下,这似乎是唯一可行的选择。 - pixel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接