API строгого имени вызывают PlatformNotSupportedException
Несколько API , которые не поддерживаются в .NET/.NET Core, но не сделали ничего, когда доступ был изменен, чтобы теперь вызвать вызов PlatformNotSupportedException во время выполнения. Ранее использование этих API в конечном итоге приведет к исключению во время выполнения дальше; Исключение теперь возникает при создании экземпляра или первом доступе к типу.
Прежнее поведение
В предыдущих версиях вызов AssemblyName.KeyPair или StrongNameKeyPair(Byte[]) отсутствие операции. Вызов StrongNameKeyPair(FileStream) потока чтения, но в противном случае ничего не сделал.
Новое поведение
Начиная с .NET 6 каждый из трех затронутых API вызывает PlatformNotSupportedException исключение во время выполнения.
Представленные версии
.NET 6
Тип критического изменения
Это изменение может повлиять на совместимость двоичного кода.
Причина изменения
Ранее приложение, вызывающее скомпилированный и запущенный API, но как только экземпляр использовался в любом пути кода, он вызвал исключение во время выполнения. Чтобы сделать его более явным, что этот сценарий не поддерживается, логика создания исключений была перемещена в конструктор экземпляра. Если экземпляры не создаются, исключение также создается в общедоступных точках входа, возвращающих этот тип, то есть AssemblyName.KeyPair.
Рекомендуемое действие
Подписывание строгого имени не поддерживается в .NET/.NET Core, и обходной путь отсутствует.
Примечание.
.NET Core/5+ никогда не проверка подписей в среде выполнения. Однако если вы нацелены на кроссплатформенные библиотеки (например, базовый пакет проверки подлинности, предназначенный для .NET Standard 2.0, поэтому он работает на платформа .NET Framework тоже), то строгое именование — это хорошая идея для совместимости между средами выполнения. платформа .NET Framework продолжает применять строгое именование, если вызывающее приложение имеет строгое имя. Сборки строгого имени можно использовать во всех версиях .NET с помощью средства Sn.exe . Дополнительные сведения см. в разделе "Строгий подписывание имен".