编译.NET项目时提示'Type'类型所属程序集未引用如何解决?
报错信息
英文原文:The type 'Type' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0'
中文翻译:类型“Type”在未被引用的程序集中定义。你必须添加对程序集“netstandard, Version=2.0.0.0”的引用
产生原因
- 项目依赖的某个NuGet包或第三方类库是基于*.NET Standard 2.0*构建的,但当前主项目的目标框架没有兼容netstandard2.0的依赖项
- 主项目为版本较老的.NET Framework(比如.NET Framework 4.6.1及更早版本),默认没有内置netstandard2.0的引用支持
- 项目的引用配置损坏,IDE自动引用netstandard的逻辑失效
可行解决方案
- 方案1:升级.NET Framework主项目版本(适用于主项目为.NET Framework的场景)
将主项目的目标框架升级到 .NET Framework 4.7.2 及以上版本,该版本开始默认内置对.NET Standard 2.0的完整支持,无需额外手动添加引用 - 方案2:手动添加netstandard程序集引用
右键项目 → 选择「添加」→「引用」→「程序集」→ 找到netstandard, Version=2.0.0.0添加即可;也可以直接在项目的.csproj文件中添加如下配置:<Reference Include="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" /> - 方案3:通过NuGet安装兼容包(适用于.NET Framework 4.6.1 ~ 4.7.1版本场景)
给当前项目安装NETStandard.Library的2.0.0版本NuGet包即可补全依赖 - 方案4:清理并重建项目
删除项目根目录下的obj、bin文件夹,清理NuGet缓存后重新还原所有包,再重新构建项目
内容的提问来源于stack exchange,提问作者Alper Ebicoglu
相关产品推荐
相关产品推荐

