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

.NET Framework 4.8库注册COM互操作时要求NetStandard 2.1.0.0的问题

解决.NET Framework 4.8类库COM注册时找不到netstandard 2.1的问题

问题根源

安装VS22后,系统环境变量PATH可能优先指向了.NET Core版本的regasm.exe,而该版本工具会尝试加载netstandard 2.1组件,但你的项目基于.NET Framework 4.8,本身不需要依赖这个版本的netstandard,从而导致注册失败。

解决步骤

方法1:手动指定.NET Framework版Regasm注册

打开管理员命令提示符,根据项目平台选择对应路径执行注册命令:

  • 64位项目:
    "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe" "X:\<removed>\my-lib.dll" /codebase /tlb
    
  • 32位项目:
    "C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe" "X:\<removed>\my-lib.dll" /codebase /tlb
    

替换命令中的实际DLL路径,执行后即可完成注册。

方法2:修改VS项目的Regasm调用配置

  1. 在VS中打开类库项目,右键项目→属性→生成→点击右下角生成事件按钮。
  2. 在后期生成事件命令行中,替换默认Regasm调用为.NET Framework版本的完整路径,示例:
    if $(ConfigurationName) == Release "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe" "$(TargetPath)" /codebase /tlb
    
  3. 保存配置后重新编译,此时会强制使用.NET Framework版Regasm完成注册。

方法3:调整系统PATH环境变量优先级

  1. 右键此电脑→属性→高级系统设置→环境变量。
  2. 在系统变量的Path列表中,找到.NET Core相关路径(通常是C:\Program Files\dotnet\),将其移至.NET Framework的Regasm路径之后;或者直接把C:\Windows\Microsoft.NET\Framework64\v4.0.30319\添加到Path最顶部。
  3. 重启VS和命令提示符,让环境变量生效后再编译注册。

额外排查项

  • 检查NuGet依赖:右键项目→管理NuGet程序包,确认没有引入依赖netstandard 2.1的包,如有则降级或替换为兼容.NET Framework 4.8的版本。
  • 检查项目文件:右键项目→编辑项目文件,确保目标框架为net48,没有<NetStandardImplicitPackageVersion>等指向netstandard 2.1的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:25:22