Как узнать, что «на самом деле» поддерживается в .NET Core?Например реестр - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть библиотека C #, которую я хочу портировать с .NET Framework на .NET Core.Поэтому я запустил «Анализатор переносимости» в Visual Studio, и он пометил несколько неподдерживаемых вещей, с которыми я столкнулся.Но я был удивлен некоторыми вещами, которые он сделал , а не , в том числе связанными с реестром (это всего лишь пример - я хочу, чтобы мой вопрос был шире, чем просто реестр).

Я думал, что всегда ранее читал, что реестр - это одна из вещей, которая не поддерживается на платформах, отличных от Windows.Поэтому я подумал, что, возможно, анализатор переносимости ошибался.Но затем я зашел на сайт Microsoft и посмотрел некоторые вещи, связанные с реестром, которые меня удивили, и обнаружил, что они включены в .NET Core.Например:

Microsoft.Win32.Registry, .NET Core 2.1

Но я подумал, что основной идеей .NET Core была кросс-платформенная реализациястандарта .NET, и такие вещи, как реестр, будут не в .NET Core, а в «.NET Core плюс расширения платформы» (если есть).Поэтому я явно что-то здесь неправильно понимаю.

Возможно, функции реализованы, но будут просто генерировать исключения в ОС, отличных от Windows?Или быть по существу неоперативным?Если что-то подобное имеет место, как я могу определить, будет ли библиотека «действительно» работать на других платформах (если не считать явных проб и ошибок)?Я думал, что в этом весь смысл анализатора переносимости.

1 Ответ

0 голосов
/ 26 ноября 2018

docs.microsoft.com не является хорошим ресурсом для определения того, где находится компонент.Для этого используйте https://apisof.net.Например, https://apisof.net/catalog/Microsoft.Win32.Registry говорит нам, что Microsoft.Win32.Registry находится в:

  • .NET Core 3.0
  • .NET Core + расширения платформы 2.0 и 2.1
  • .NET Standard + расширения платформы 1.6 и 2.0
  • ASP.NET Core 2.0
  • .NET Framework.
...