为什么要在项目中创建一个文件夹来保存你正在引用的dll?

时间:2010-06-30 12:30:24

标签: visual-studio dll reference project

我正在ASP.NET网站项目中安装N2内容管理框架。

http://n2cms.com/Documentation/Content-enabling%20an%20existing%20site/The%20first%20content%20class.aspx上的说明建议我创建一个lib文件夹来保存所需的dll。下一步要求我引用那些相同的dll - 这可能会将它们添加到bin文件夹中!因此,我的项目将包含dll的复制副本。

有人可以建议为什么要提出此建议吗?

由于

大卫

2 个答案:

答案 0 :(得分:2)

项目不会包含重复项。 bin文件夹是输出的位置,但它不被视为实际项目的一部分,并且不会检入源代码管理。

通过将DLL放在lib文件夹中,可以更轻松地将它们与应用程序源一起分发,并确保获取代码副本的任何其他人,无论是将代码发送给他们还是从源代码中获取代码控件,具有运行应用程序所需的DLL。它还确保它们使用您用于创建软件的相同版本的组件。如果DLL需要许可,则可能是一个不同的故事,因为任何想要编译项目的人都需要为其工作站上安装的DLL提供许可组件。

基本上,我看到的主要好处是它将代码使用的所有组件保存在同一个地方,使您的项目成为一个整体。

答案 1 :(得分:1)

如果您将DLL添加到bin文件夹,然后有一天决定清理您的项目,它们将消失...因此,最好将参考DLL保留在bin文件夹之外。

实际上,有很多方法可以从bin文件夹中意外删除DLL。只需将bin文件夹视为一个临时位置,其内容可以立即刷新。

在构建过程中,所有相关文件都将被复制到bin文件夹,包括配置文件,标记为要复制到输出文件夹的内容文件,当然还有标记为Copy Local的任何引用的DLL。

如果重复的位置困扰您,您可以将DLL保存在另一个文件夹中,只需将包含的文件夹路径添加到当前AppDomain的PrivateBinPath,这将确保它们加载而不需要{{1属性。