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

Win10中注册自定义.NET8 DLL失败:找不到System.Runtime程序集

问题分析与解决方案

核心问题

你使用的是**.NET Framework 4.8版本的Regasm.exe**来注册.NET 8编译的程序集,两者属于不同的.NET运行时生态,旧版Regasm无法识别.NET 8的核心依赖(如System.Runtime 8.0.0.0),导致加载失败。

解决方案

  1. 使用.NET 8原生注册工具
    放弃旧版Regasm.exe,改用.NET 8自带的dotnet regasm命令,以管理员权限运行命令提示符或PowerShell,执行以下命令:

    dotnet regasm /codebase /tlb "C:\TestPrograms\ShellExtension\shellextension.dll"
    

    该工具会自动适配.NET 8运行时,正确加载所需依赖。

  2. 确认项目编译配置

    • 确保你的DLL目标框架为net8.0-windows(而非纯net8.0),Windows外壳扩展需要依赖Windows桌面运行时组件。
    • 检查项目的COM可见性配置:
      • 在项目属性中启用"使程序集COM可见";
      • 给需要暴露为COM对象的外壳扩展类添加[ComVisible(true)]和[Guid("你的唯一GUID")]特性,同时确保类继承自对应的外壳扩展接口(如IShellExtInit、IContextMenu等)。
  3. 修正PowerShell脚本
    如果你的注册脚本仍在调用旧版Regasm.exe,需修改脚本替换为dotnet regasm命令,示例如下:

    param([string]$assemblyPath)
    dotnet regasm /codebase /tlb $assemblyPath
    

额外注意事项

  • 注册操作必须以管理员权限执行,否则会因权限不足导致注册表写入失败;
  • 你的测试机已安装.NET 8运行时,满足依赖要求,无需额外安装;
  • 若涉及x86/x64兼容问题,需确保编译的DLL架构与系统一致(你的系统是x64,保持默认x64编译即可)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:34:50