【问题标题】:Referenced DLL in VisualStudio can't find its own DLL C#VisualStudio中引用的DLL找不到自己的DLL C#
【发布时间】:2016-07-21 15:58:39
【问题描述】:

我正在使用外部 DLL 来处理 C# 项目中的 PDF 导出。我在 Visual Studio 中添加了外部 DLL 引用,添加了适当的 using 语句,Intellisense 在我键入命名空间时显示了各种方法和属性,并且在对象资源管理器中也有所体现。

但是,当我运行应用程序时,程序会引发运行时异常,因为我的外部 DLL 找不到与外部 DLL 位于同一目录中的另一个 DLL。

为了让事情更混乱,如果我只是将每个 DLL 从我要引用的目录中复制到程序的 Debug 文件夹中,程序不会抱怨,但显然我不应该这样做.

提前致谢。

【问题讨论】:

  • 是的,我认为您需要查看解决方案资源管理器中引用选项卡下的 dll 属性。设置为始终复制或如果更新则复制。它应该复制到调试文件夹中,无论如何您都要手动复制它。

标签: c# visual-studio reference


【解决方案1】:

您需要在 VS 中的 DLL 属性中检查“复制到输出目录”、“始终复制”。 否则DLL不会自动复制到输出中,程序无法运行。

我认为其他问题可能会对您有所帮助:MSBuild doesn't copy references (DLL files) if using project dependencies in solution

【讨论】:

  • 您的意思是“复制本地”吗?在这种情况下,它已经设置为 true
  • 不,我的意思是“复制到输出目录”“总是复制”
  • 我似乎找不到该选项。在 Visual Studio 2013 中,我打开解决方案资源管理器,展开引用下拉列表,右键单击我的 DLL,然后选择属性
  • 好吧抱歉我不清楚,我相信 DLL 在你的 csproj 中(添加方式与文件相同)。在您的情况下,是的,复制本地就足够了,当您将其设置为 true 时,输出目录中的 dll 是否存在?)
  • DLL 复制过来很好,只是无法引用自己的依赖项
【解决方案2】:

看起来您的依赖项有另一个您想要包含在 drop 中的引用。你有两个选择: - 也可以添加对该隐式依赖项的引用(并设置“复制本地”= true) 或者 - 将依赖的dll添加为项目项并将其标记为“复制到输出目录” = true。

【讨论】:

    猜你喜欢
    • 2018-02-09
    • 1970-01-01
    • 2022-07-12
    • 2020-07-02
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    相关资源
    最近更新 更多