添加.Net Standard 2.0程序包后的ASP.Net MVC ASPNETCOMPILER问题

问题描述 投票:0回答:1

我已经创建了一些帮助程序库(NuGet),它们在我的各种.Net FullFramework和.Net Core应用程序中都可以正常工作。

但是,当我将它们添加到特别复杂的Asp.Net MVC(.Net 4.7.2)Web应用程序中时,出现以下错误:

  1. 类型'System.Object'是在未引用的程序集中定义的。您必须添加对程序集的引用'netstandard,Version = 2.0.0.0,Culture = neutral,PublicKeyToken =...。
  2. 类型'System.IComparable'在未引用的程序集中定义。您必须添加对程序集的引用'netstandard,Version = 2.0.0.0,Culture = neutral,PublicKeyToken =...。
  3. 类型'System.IFormattable'是在未引用的程序集中定义的。您必须添加对程序集的引用'netstandard,Version = 2.0.0.0,Culture = neutral,PublicKeyToken =...。
  4. 类型'System.IConvertable'在未引用的程序集中定义。您必须添加对程序集的引用'netstandard,Version = 2.0.0.0,Culture = neutral,PublicKeyToken =...。
  5. 类型'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>

  • PackageA
  • 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>

  • PackageB
  • 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>

  • PackageC
  • 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>

  • PackageD
  • Microsoft.CodeAnalysis.FxCopAnalyzers 2.98
  • NETStandard.Library 2.0.3
  • StyleCop.Analyzers 1.1.118

[我已经尝试过以下方法,或者一起尝试,或者一次尝试...没有运气。

  1. [添加了对NETStandard.Library(2.0.3)的NuGet引用,还尝试了2.0.0(因为这是专门要求的。)
  2. [<Reference Include="netstandard" />已添加到我的* .csprog文件中
asp.net .net asp.net-mvc .net-standard .net-standard-2.0
1个回答
0
投票

最后,通过从以下位置更改我的web.config解决了此问题>

<compilation debug="true" targetFramework="4.7.2" />

to

<compilation debug="true" targetFramework="4.7.2" > 
  <assemblies>
    <add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"/> 
  </assemblies>
</compilation>

感谢David Sekar的此帖。

© www.soinside.com 2019 - 2024. All rights reserved.