0

    无法注册一个dll[英] unable to register a dll

    2023.06.07 | admin | 145次围观

    问题描述

    大家好,

    我有一个 C++ dll 和一个 c# dll将程序集添加到缓存失败 尝试安装没有强名称的程序集

    我无法注册他们,

    对于 c# dll,我得到的错误是

    gacutil/i mycsharp.dll

    "将程序集添加到缓存失败:尝试安装没有 s 的程序集

    好名字"

    对于 C++,我得到的错误是,

    regsvr32 mycpp.dll

    "mycpp.dll 已加载,但未找到 DllRegisterServer 入口点,无法注册此文件.".推荐答案如错误提示,您需要一个强名称.

    查看 msdn 上的文档以创建强名称.

    在互联网上进行搜索也会对您有所帮助.

    首先,关于 GACUtil:

    签署大会.签字.即使您在 GAC 中不需要它.如果要与应用程序一起部署将程序集添加到缓存失败 尝试安装没有强名称的程序集,请签名.

    (您是否明白,您不必将库放在 GAC 中,仅当这是供您的用户使用的库?或者如果它被多个产品使用?不需要部署在几个程序集中只有一个应用程序.)

    无法注册一个dll[英] unable to register a dll

    以二进制形式对您部署的所有内容进行签名.

    请看:

    [^],

    [^].

    请参阅此 CodeProject 文章:

    强名称解释[^].

    了解它的基础知识.这是员工非常重要的基本面之一.签署程序集需要几秒钟,但你应该明白为什么要这样做.

    现在,关于 regsvr32:

    这是一个注册COM DLL的工具,请看:

    [^].

    你确定你实现了这样的事情吗?

    结论

    您需要了解您正在开发什么,您要注册什么以及为什么.你开发COM吗?.NET 程序集?两个都?为什么?你真的需要注册GAC吗?如果这只是一个带有多个应用程序的软件产品,那么您甚至不需要任何安装.这取决于你的目的.从它开始.了解您使用的技术的基础知识,并在何时以及是否要提出其他问题时明确指出.

    到目前为止,我对您的方法的印象是我称之为"踢电视机直到它开始显示图片".:-)

    —SA

    C++情况

    你不能注册一个普通的dll.您只注册 COM dll.您的 dll 似乎不是 COM dll.所以你不需要注册它.您可以直接使用它.要了解如何使用客户端应用程序中的 dll,请参阅此链接 (v=vs.80).aspx[^]

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    标签: dll文件
    发表评论