Почему deos MVC5 View (. NET 4.7.2) завершается с ошибкой, говоря, что Dictionary <,> определен в сборке 'netstandard', на которую нет ссылок - PullRequest
0 голосов
/ 18 марта 2020

У меня есть ASP. NET MVC 5 (.2) проект, основанный на. NET 4.7.2.

В одном из моих представлений Razor есть некоторый код, который вызывает ToDictionary метод, который приводит к ошибке intellisense (и времени выполнения):

Error CS0012 The type 'Dictionary<,>' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.

Я думал. NET 4.7.2 должен был поддерживать. NET Стандартно изначально, поэтому почему меня просят сослаться на «нестандарт»? Я даже не уверен, почему он говорит, что, поскольку AFAIK тип Dictionary <,> определен в mscorlib, а не в netstandard, и ни один из моих зависимых проектов не ссылается. NET Стандарт. Где бы я вообще сослался на этот файл? И если я на это ссылаюсь (скажем, на старую версию, такую ​​как 2.0), не будет ли это просто конфликтовать с фреймворком 4.7.2?

Между тем, единственный способ, с помощью которого любой из этих компилируется, - это включить package ' Microsoft.CodeDom.Providers.DotNetCompilerPlatform ', но он не обновлялся с 2018 года (. net 4.7.2 был выпущен в апреле того же года).

...