【发布时间】:2020-04-21 20:24:24
【问题描述】:
我创建了一些帮助程序库 (NuGet),它们在我的各种 .Net FullFramework 和 .Net Core 应用程序中运行良好。
但是,当我将它们添加到一个特别复杂的 Asp.Net MVC (.Net 4.7.2) Web 应用程序时,我收到以下错误:
- “System.Object”类型是在未引用的程序集中定义的。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=.... 的引用。
- “System.IComparable”类型是在未引用的程序集中定义的。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=.... 的引用。
- “System.IFormattable”类型在未引用的程序集中定义。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=.... 的引用。
- “System.IConvertable”类型在未引用的程序集中定义。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=.... 的引用。
- “System.ValueType”类型是在未引用的程序集中定义的。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=.... 的引用。
在“输出”窗口中,最后几个显示为:
ASPNETCOMPILER:错误 CS0455:类型参数“T”继承冲突 约束“System.IFormattable”和“System.IComparable”
我的 NuGet 包(A、B、C D 和 E)本身具有以下 NuGet 包:
PackageA - <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
- Microsoft.CodeAnalysis.FxCopAnalyzers 2.98
- NETStandard.Library 2.0.3
- StyleCop.Analyzers 1.1.118
PackageB - <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
- 包A
- Microsoft.CodeAnalysis.FxCopAnalyzers 2.98
- NETStandard.Library 2.0.3
- Newtonsoft.Json 12.0.3
- StyleCop.Analyzers 1.1.118
- System.Configuration.ConfigurationManager 4.7.0
- System.Data.SqlClient 4.8.1
PackageC - <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
- 包B
- Microsoft.CodeAnalysis.FxCopAnalyzers 2.98
- NETStandard.Library 2.0.3
- StyleCop.Analyzers 1.1.118
- System.Diagnostics.EventLog 4.7.0
PackageD - <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
- 包C
- Microsoft.CodeAnalysis.FxCopAnalyzers 2.98
- NETStandard.Library 2.0.3
- StyleCop.Analyzers 1.1.118
- System.Runtime.Caching 4.7.0
PackageE - <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
- 包装D
- Microsoft.CodeAnalysis.FxCopAnalyzers 2.98
- NETStandard.Library 2.0.3
- StyleCop.Analyzers 1.1.118
我已经尝试了以下方法,或者一起尝试,或者一次尝试一个......没有运气。
- 添加了对 NETStandard.Library (2.0.3) 的 NuGet 引用,并尝试了 2.0.0(因为这是专门要求的)。
- 在我的 *.csprog 文件中添加了
<Reference Include="netstandard" />
【问题讨论】:
标签: asp.net .net asp.net-mvc .net-standard .net-standard-2.0