【问题标题】:C# .NET - Adding DLL as reference won't workC# .NET - 添加 DLL 作为参考将不起作用
【发布时间】:2018-09-12 07:29:52
【问题描述】:

我正在尝试添加一个 DLL 作为对我的项目的引用(在 VS2010 上使用 .NET Framework 4 为 64 位)。但我收到以下错误:

无法添加对“XXX”的引用。请确保该文件是可访问的,并且它是一个有效的汇编或 COM 组件

使用 RegSvr32 安装 DLL 说:

模块已加载,但未找到入口点 DLLRegisterServer...

尝试使用 RegAsm 安装 DLL 说:

错误 RA0000:无法加载“XXX”,因为它不是有效的 .NET 程序集。

我不知道是什么类型的 DLL,但它包含在为 .NET Framework 和 C# 编写的 SDK 中。

谁能帮我解决这个问题?

非常感谢!

【问题讨论】:

  • 听起来它不是 COM 组件或托管 dll。 Dependency Walker 对这个文件有什么看法?也许它是一个原生库,你必须使用 pinvoke
  • @DennisKuypers Dependency Walker 甚至无法加载 dll。它表示以下内容:错误:未找到至少一个必需的隐式或转发依赖项。警告:未找到至少一个延迟加载依赖模块。
  • 尽管 Dependency Walker 抛出了错误,它在 gui 中声明了以下内容: - XXX.dll * KERNEL32.DLL * USER32.DLL * MSVCP90.DLL * WS2_32.DLL * MSVCR90.DLL跨度>
  • 这本身不是错误 - 但从 MSVCP (Microsoft Visual C Plusplus/Runtime) 你可以看到它是一个 C/C++ 本机 dll,你必须使用 pinvoke
  • @DennisKuypers 我会的!非常感谢!

标签: c# .net api dll sdk


【解决方案1】:

对不起我的英语:

dll 是为 c#(托管)构建的 dll,您只需添加对项目的引用:(右键单击引用并选择“添加引用”)-> 您必须指明 dll 的位置。当你需要访问你的 Dll 之后,你必须包含命名空间。

这不是为 c# 构建的 dll,您必须使用 loadlibray 加载 dll

您的 dll 已损坏..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 2022-06-14
    • 1970-01-01
    • 2011-01-24
    相关资源
    最近更新 更多