Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Несколько 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. Дополнительные сведения см. в разделе Строгое именование.