【问题标题】:Referenced DLL is not found when running application from VS从 VS 运行应用程序时找不到引用的 DLL
【发布时间】:2015-06-09 23:31:12
【问题描述】:

我创建了一个托管的 VC++ 类库,现在我创建了一个新的 C# 控制台应用程序。我添加了类库中的 DLL 作为参考。现在,当我尝试从 VS 运行我的程序时,VS 抱怨它找不到 DLL。但是,当我检查输出文件夹bin\Debug 时,DLL 就在那里。

有什么我忘记配置的吗?

【问题讨论】:

  • 您是否在 C# 项目中添加了对 References 文件夹的引用?
  • 好吧,那么您知道它并没有抱怨您可以看到的 DLL。所以它可能是另一个,你通常创建一个 C++/CLI 项目来编写一个包装器。因此,您还依赖于包含该本机代码的任何 DLL。您必须自己复制它,使用构建后事件。或者确保 C++/CLI 项目和 C# 项目将它们的构建结果生成到同一目录中。 YMMV。如果您无法弄清楚,请使用 SysInternals 的 Process Monitor。您会看到您的程序正在搜索 DLL,但没有找到它。
  • 我认为这是罪魁祸首。我创建了另一个没有其他依赖项的类库,以及另一个使用它的控制台应用程序,它在那里工作。是的,我的 DLL 正在连接另一个,所以我必须手动复制依赖的那个。谢谢。
  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。

标签: c# visual-studio-2010


【解决方案1】:

正确答案在 Hans passant 的评论中:无法加载的 DLL 引用了输出目录中不存在的另一个 DLL。这就是我得到异常的原因。

我现在添加了一个构建后步骤,在成功构建后将 DLL 复制到输出目录,瞧,它可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 2016-02-01
    相关资源
    最近更新 更多