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

使用RegAsm.exe注册.NET 8 DLL遇System.Runtime加载错误求助

解决方案

1. 替换为.NET 8专属的dotnet regasm命令

你之前用的RegAsm.exe是针对.NET Framework的工具,无法正确识别.NET 8程序集的依赖结构,这才导致了System.Runtime加载错误。改用.NET SDK自带的dotnet regasm命令就能解决这个问题:

  • 以管理员身份打开命令提示符
  • 直接执行(替换为你的DLL路径):
    dotnet regasm "你的程序集路径\YourAssembly.dll" /codebase
    
    如果是64位程序集,需额外添加平台参数:
    dotnet regasm "你的程序集路径\YourAssembly.dll" /codebase /platform:x64
    
    这个命令会自动调用.NET 8的运行时环境,直接加载C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.1\下的实际运行时程序集,不会再触发"引用程序集无法执行加载"的错误。

2. 处理无强名称的警告

/codebase搭配无强名称程序集的警告只是安全提示,本地单机器使用时,只要不存在同名程序集冲突,完全可以忽略。

如果想彻底消除警告,生成强名称的操作其实很简单,并不耗时:

  • 打开项目的.csproj文件,添加以下配置:
    <PropertyGroup>
      <SignAssembly>true</SignAssembly>
      <AssemblyOriginatorKeyFile>YourKey.snk</AssemblyOriginatorKeyFile>
    </PropertyGroup>
    
  • 用命令生成密钥文件:
    sn -k YourKey.snk
    
  • 重新编译项目,得到带强名称的程序集后再执行dotnet regasm,警告就会消失。

3. 确认SDK安装

确保你的机器上安装了**.NET 8 SDK**(仅Runtime不够),因为dotnet regasm是SDK的组成部分。如果未安装,直接下载对应版本的SDK包即可。

关键提示

你找到的C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.1\ref\net8.0\System.Runtime.dll是编译引用程序集,仅用于代码编译阶段,不能被执行加载。实际运行时依赖的程序集都在C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.1\目录下,dotnet regasm会自动识别这个路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 20:20:20