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

VS添加NetStandard dll引用报错instance object was created as immutable

向.NET Core应用添加NetStandard类库DLL报"instance object was created as immutable"错误解决方法

向.NET Core应用程序中直接添加NetStandard类库的DLL文件时,Visual Studio抛出instance object was created as immutable错误、拒绝添加引用,可按以下方案排查解决:

  • 优先替换为项目引用:如果持有NetStandard类库的源码,直接在解决方案内通过「添加项目引用」的方式关联类库项目,不要直接引用编译输出的DLL文件。Visual Studio对项目引用会自动做目标框架兼容性校验和元数据处理,不会触发不可变对象修改的内部异常。
  • 校验目标框架兼容性:如果必须引用独立DLL文件(无源码仅持有编译产物),先确认框架版本匹配:
    • .NET Core 2.1 最高兼容 NetStandard 2.0
    • .NET Core 3.1 最高兼容 NetStandard 2.1
      版本不匹配时,VS引用校验逻辑会尝试修改只读的程序集元数据对象,直接触发该不可变错误。
  • 清理损坏的VS缓存:关闭所有Visual Studio进程,删除解决方案根目录下的隐藏.vs文件夹,同时删除所有项目下的bin、obj目录,重启VS后再尝试添加引用,多数缓存导致的元数据解析异常可通过该方式修复。
  • 手动编辑项目文件绕过UI校验:如果UI添加始终报错,可以直接编辑csproj项目文件添加引用,跳过VS引用添加界面的bug逻辑。在项目文件的<ItemGroup>节点下添加如下配置,替换为实际的DLL路径和类库名:
<Reference Include="NetStandard类库名">
  <HintPath>..\lib\YourClassLibrary.dll</HintPath>
</Reference>

保存后执行dotnet restore命令,重新生成项目即可正常识别引用。

注意:如果引用的是NetStandard 1.x版本的类库,建议先将类库升级到NetStandard 2.0及以上版本再引用,1.x版本的依赖解析逻辑和.NET Core 3.0+版本兼容性极差,极易触发这类元数据处理错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:27:35