Start Debugging

dotnet-11

319 статей · Страница1из32

.NET 10.0.14 вышел вне очереди: переполнение буфера при распаковке Brotli и два повторно выпущенных октябрьских CVE

Внеплановый релиз от 25 октября 2026 года (.NET 8.0.33, 9.0.22, 10.0.14, 11 RC3) исправляет переполнение буфера в Brotli, уязвимость с владельцами файлов в Linux-архивах tarball и два CVE, которые патчи от 13 октября закрыли не полностью.

Как настроить самоссылающуюся связь многие-ко-многим (подписчики и подписки) в EF Core

Моделируем подписчиков и подписки на одной сущности User в EF Core 11: что строит конвенция, почему SQL Server молча превращает один внешний ключ соединительной таблицы в ClientCascade, как сопоставить явную сущность Follow с временной меткой и как удалить пользователя без ошибок 547 и 1785.

Как пометить ответ действия контроллера как допускающий null во встроенном документе OpenAPI в ASP.NET Core

Microsoft.AspNetCore.OpenApi помечает ответ как допускающий null, только когда действие возвращает голый T? (а в .NET 10 не помечает даже Task<T?>). ActionResult<T?> и IActionResult теряют аннотацию и в .NET 10, и в .NET 11 RC2. Здесь разобрано, почему так происходит, показан проверенный трансформер операций, который это исправляет, и ловушка с 204 No Content, из-за которой спецификация лжёт, пока вы не измените форматтер MVC.

Как форматировать числа с индийской группировкой разрядов lakh/crore в .NET (NumberGroupSizes)

Используйте культуру en-IN или задайте NumberFormatInfo.NumberGroupSizes равным [3, 2], чтобы в C# выводить 12,34,56,789 вместо 123,456,789. Замеры на .NET 10 и .NET 11 RC1: как работает массив, почему CurrencyGroupSizes задаётся отдельно, ловушка invariant globalization, которая молча выводит западную группировку, и вспомогательный метод для слов lakh/crore.

Как удалить или скрыть отдельные endpoint, которые MapIdentityApi добавляет в ASP.NET Core

MapIdentityApi<TUser>() добавляет десять endpoint и не позволяет пропустить ни один из них. Вот четыре проверенных способа справиться с этим на .NET 11: скрыть endpoint из OpenAPI, заставить его возвращать 404, перекрыть его или полностью убрать из маршрутизации, плюс ловушка /confirmEmail, из-за которой регистрация превращается в 500.

Исправление: FileInfo.Length возвращает устаревший размер файла, в который ещё идёт запись, в Windows

FileInfo кеширует размер, перечисление читает лениво обновляемую запись каталога NTFS, а процесс записи может всё ещё держать байты в своих буферах. Используйте Refresh() или, лучше, читайте длину через общий дескриптор с помощью RandomAccess.GetLength.

Fix: Settings file 'DotnetToolSettings.xml' was not found in the package

Пакет инструмента нацелен на более новую версию .NET, чем SDK, выполняющий установку, или вообще не является инструментом .NET. Используйте более новый SDK, зафиксируйте версию инструмента с подходящей папкой tools или принудительно задайте --framework.

Как сопоставлять вложенные скобки и сбалансированные теги с помощью балансирующих групп в .NET Regex

Балансирующие группы (?<name>) и (?<-name>) превращают группу захвата в .NET regex в стек, поэтому одним шаблоном можно сопоставлять произвольно вложенные скобки или теги <div>. Полный шаблон, как работает стек, захват внутреннего содержимого через (?<inner-open>) и подводные камни, проверенные на .NET 11 RC1: проверка пустого стека, катастрофический откат, NonBacktracking и смешанные типы скобок.
Вперёд