为什么refed Dll应该与.Net中的exe放在同一个目录中?

时间:2013-08-14 06:30:17

标签: .net c#-4.0 c#-2.0

假设我在vs2010中有几个项目,一个名为app,这是主要项目。当我在应用程序项目使用的另一个类库项目中引用dll时,我确保将refrenced dll复制到bin中类库项目的文件夹,但有一个运行时错误提醒我,除非我将dll放在主项目的bin文件夹中,否则无法找到refrenced dll。为什么会这样?期待你的回答,谢谢!

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我试图搜索“为什么引用的dll被复制到bin文件夹中”但是无法找到任何特定的帖子或博客,但这不是构建应用程序的正确方法吗? .net确保将来自其他引用项目的所有dll都复制到可执行文件的bin文件夹中,以便不存在机器级依赖项。如果您的项目dll在本地引用,则这是真的。如果您希望项目dll被多个项目引用,那么要么分发这些dll,要么将这些dll放在分发这些dll的机器的全局程序集缓存(GAC)中。为此,链接为here

此外,您无需将每个引用的dll复制并粘贴到bin文件夹中。 .net自动完成。如果不是你的情况,那么右键单击References区域中的子项目,转到属性,然后将“Copy Local”设置为True。这会将dll复制到output / bin文件夹中进行分发,并应解决依赖关系在没有DLL的机器上。

我希望这有一些帮助。

此致

萨马