我正在ASP.NET网站项目中安装N2内容管理框架。
http://n2cms.com/Documentation/Content-enabling%20an%20existing%20site/The%20first%20content%20class.aspx上的说明建议我创建一个lib文件夹来保存所需的dll。下一步要求我引用那些相同的dll - 这可能会将它们添加到bin文件夹中!因此,我的项目将包含dll的复制副本。
有人可以建议为什么要提出此建议吗?
由于
大卫
答案 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属性。