ASP. Net MVC Проблемы ASPNETCOMPILER после добавления. Net Стандартный пакет 2.0 - PullRequest
0 голосов
/ 21 апреля 2020

Я создал несколько вспомогательных библиотек (NuGet), и они отлично работают в различных приложениях. Net FullFramework и. Net Основные приложения.

Однако, когда я добавляю их в особенно сложное Asp. Net MVC (. Net 4.7.2) веб-приложение, я получаю следующие ошибки:

  1. Тип 'System.Object' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку 'netstandard, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = ....
  2. Тип' System.IComparable 'определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку 'netstandard, версия = 2.0.0.0, Culture = нейтральная, PublicKeyToken = ....
  3. Тип' System.IFormattable 'определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку 'netstandard, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = ....
  4. Тип' System.IConvertable 'определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку 'netstandard, версия = 2.0.0.0, Culture = нейтральная, PublicKeyToken = ....
  5. Тип' System.ValueType 'определен в сборке, на которую нет ссылок. Вы должны добавить ссылку на netstandard сборки, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = ....

В окне «output» последние несколько отображаются как:

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

Пакет C - <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>

  • PackageB
  • Microsoft.CodeAnalysis.FxCopAnalyzers 2.98
  • NETStandard.Library 2.0.3
  • StyleCop. Анализаторы 1.1.118
  • System.Diagnostics.EventLog 4.7.0

PackageD - <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>

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

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

Я пробовал следующее, либо все вместе, либо по одному за раз ... не повезло.

  1. Добавил ссылку NuGet на NETStandard.Library (2.0.3), а также попробовал 2.0.0 (потому что именно об этом специально и просили).
  2. Добавил <Reference Include="netstandard" /> в мой * Файл .csprog

1 Ответ

0 голосов
/ 22 апреля 2020

Наконец, решил эту проблему, изменив мой web.config с

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

на

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

Благодаря этому сообщению David Sekar .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...