0

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

4

2 回答 2

0

有一个.dll 搜索顺序。请参阅http://msdn.microsoft.com/en-us/library/yx7xezcf.aspx

于 2013-08-14T06:45:01.393 回答
0

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

此外,您不需要将每个引用的 dll 复制并粘贴到 bin 文件夹中。.net 会自动执行此操作。如果不是您的情况,则右键单击“引用”区域中的子项目,转到属性,然后将“复制本地”设置为 True。这会将 dll 复制到您的输出/bin 文件夹中进行分发,并且应该解决依赖关系在没有 DLL 的机器上。

我希望这会有所帮助。

问候,

萨马尔

于 2013-08-14T07:14:10.627 回答