代码之家  ›  专栏  ›  技术社区  ›  mbmcavoy

在.NET项目中找不到DLL

  •  1
  • mbmcavoy  · 技术社区  · 15 年前

    我有一个使用一些第三方DLL的项目,正在开发部署的安装项目。从Visual Studio 2005中运行(调试)时,程序运行正常,但在“已安装”时则不正常。

    将DLL正确复制到应用程序文件夹。我的理解是安装程序没有注册DLL。”正在检索具有clsid的组件的COM类工厂{ GUID }由于以下错误而失败:80040154“

    在安装项目中,每个dll程序集的“register”属性都设置为“vsdracom”,我认为它应该触发注册。

    编辑:看起来它们都是.NET程序集,就像我的应用程序和注册一样。 应该 不是问题。标题已更改以反映此情况。

    这看起来应该很基本,但我不应该做什么?

    3 回复  |  直到 15 年前
        1
  •  0
  •   PhilMY    15 年前

    使用依赖关系查询器( http://dependencywalker.com/ )以检查DLL可能试图加载的其他内容。

    然后尝试在注册表中的hkcr\clsid下搜索您的guid,inprocserver32应包含成功注册的dll的路径。

        2
  •  0
  •   shf301    15 年前

    如果这些是自注册的普通COM对象(而不是.NET程序集)(即可以用regsvr32注册它们),则需要 vsdraCOMSelfReg vsdraCOM . VSDRACOM 用于为COM互操作注册.NET程序集。

    是的,这一点都不直观。

        3
  •  0
  •   mbmcavoy    15 年前

    使用中的DLL包含一个SDK包,其中包含来自供应商的文档、代码示例等,并包含在安装程序中。我有所有的松散文件转移到一台新电脑时,但没有发现我实际上没有运行安装程序的新电脑。

    安装SDK必须执行所需的任何注册-我的应用程序现在运行正常。我可以通过运行两个安装程序在目标计算机上进行安装,这是可以接受的。