Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Несколько API, которые не поддерживаются в .NET/.NET Core и ничего не делали при вызове, теперь вызывают исключение PlatformNotSupportedException во время выполнения. Ранее использование этих API-интерфейсов в конечном итоге приводило к исключению во время выполнения позже. Это исключение теперь возникает при создании экземпляра или первом доступе к типу.
Предыдущее поведение
В предыдущих версиях вызов AssemblyName.KeyPair или StrongNameKeyPair(Byte[]) являлся no-op. Вызов 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. Дополнительные сведения см. в разделе Строгое именование.