У меня есть 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 был выпущен в апреле того же года).