You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何C# DLL在Excel 2007注册可用但Excel 2021提示未注册?

解决Excel 2021中C# COM DLL提示未注册的问题

你编写的C# COM DLL代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Excel = Microsoft.Office.Interop.Excel;

namespace Hello
{
  public class HelloWorld
  {
    public String HelloUser(string name)
    {
       return "Hello " + name;
    }
  }
}

该DLL在Excel 2007中正常使用,但Excel 2021提示未注册,可按以下步骤解决:

  • 匹配Excel与DLL的位数

    1. 查看Excel 2021位数:打开Excel,依次点击「文件>账户>关于Excel」,确认是32位还是64位。
    2. 重新编译DLL:在Visual Studio中打开项目,进入「项目属性>生成>平台目标」,选择与Excel一致的位数(x86对应32位,x64对应64位),重新生成DLL。
  • 以管理员权限重新注册DLL
    打开管理员权限的命令提示符,根据位数选择对应版本的regasm.exe执行注册命令:

    • 32位环境:
      C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe YourDllName.dll /codebase /tlb
      
    • 64位环境:
      C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe YourDllName.dll /codebase /tlb
      

    替换YourDllName.dll为你的实际DLL文件名,/codebase参数会在注册表中记录DLL路径,/tlb参数生成类型库帮助Excel识别组件。

  • 调整Excel 2021的安全设置

    1. 打开Excel,依次点击「文件>选项>信任中心>信任中心设置」。
    2. 进入「宏设置」,勾选「启用所有宏(测试时使用,后续可调整为更安全的选项)」。
    3. 进入「受信任位置」,添加你的DLL所在文件夹,将其设为受信任目录。
  • 为DLL添加强名称签名(可选)
    Excel 2021的安全策略更严格,未签名的COM组件可能被拦截:

    1. 在Visual Studio项目属性中,进入「签名」选项卡。
    2. 勾选「为程序集签名」,选择或创建一个强名称密钥文件。
    3. 重新生成DLL后,再执行注册步骤。

内容的提问来源于stack exchange,提问作者Shark SirShark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 00:48:21