Start Debugging

Etiqueta: how-to

61 posts · Página1de7

Cómo agregar la clave pública completa de un ensamblado con nombre seguro a InternalsVisibleTo en un proyecto de estilo SDK
Un ensamblado firmado debe nombrar a su ensamblado de confianza por la clave pública completa de 320 caracteres, no por el token, o la compilación falla con CS1726 o CS0281. Obtén la clave con sn -p y sn -tp, o con un script de .NET multiplataforma, y luego ponla en el metadato Key de un elemento InternalsVisibleTo en el .csproj. Cubre el respaldo de la propiedad PublicKey, la clave de DynamicProxyGenAssembly2 de Moq y la trampa de los saltos de línea.
Cómo detectar los eventos de bloqueo, desbloqueo, inicio y cierre de sesión de Windows en una app de C#
Usa SystemEvents.SessionSwitch en una app de escritorio o de consola, sobrescribe OnSessionChange en un servicio de Windows, o engancha WM_WTSSESSION_CHANGE tú mismo. Incluye código de .NET 10 para los tres enfoques, el hilo oculto '.NET System Events', por qué los servicios ven el inicio de sesión y las apps de escritorio no, las notificaciones fuera de orden y cómo consultar el estado de bloqueo actual con WTSQuerySessionInformation.
Cómo establecer parámetros de sesión de PostgreSQL como search_path o statement_timeout en cada conexión de EF Core con Npgsql
Un SET ejecutado una sola vez se borra con DISCARD ALL en cuanto Npgsql devuelve la conexión a su pool. Pon search_path y statement_timeout en el paquete de inicio con las palabras clave Search Path y Options de la cadena de conexión, recurre a ALTER ROLE o a un interceptor ConnectionOpened, y entiende por qué UsePhysicalConnectionInitializer pierde su SET sin avisar.
2026-09-27 dartfluttervs-code
Cómo acelerar un servidor de análisis de Dart lento en VS Code para un monorepo grande de Flutter
Un monorepo con decenas de archivos pubspec.yaml hace que el servidor de análisis de Dart construya un contexto de análisis por paquete, y ahí se van la memoria y el arranque de un minuto. Conviértelo en un pub workspace, excluye el código generado en analysis_options.yaml, elimina los plugins legacy del analizador y usa la página Insights para comprobarlo. Medido en Dart 3.12.2: 2.3x menos memoria pico y la mitad del tiempo de análisis en frío.
Cómo mantener consistentes una escritura en base de datos y una subida a Azure Blob Storage en una sola solicitud de ASP.NET Core
No existe ninguna transacción que abarque SQL Server y Blob Storage. Sube a un nombre que la base de datos ya conoce, confirma en segundo lugar, compensa ante el fallo y deja que un barredor limpie la ventana de caída. Con la sobrecarga de UploadAsync que convierte en silencio una creación condicional en una sobrescritura.
Siguiente