tipos - Forzar excepciones de idioma inglés en.NET framework
propiedades de las excepciones en c# (7)
¿Has intentado cambiar la cultura inmediatamente antes de leer el texto de excepción? Puede ser que la localización se produzca cuando accede al mensaje, en lugar de cuando se crea el objeto de excepción.
Al trabajar con ASP.NET MVC, he notado que los mensajes de excepción emitidos por .NET Framework instalado en mi sistema están en alemán. Realmente preferiría los mensajes en inglés, así que puedo publicarlos en SO.
Sé que esto se ha pedido antes en SO, pero extrañamente, ninguna de las soluciones sugeridas parece funcionar en mi caso. Ya he intentado lo siguiente:
- cambiar mi sistema de Windows a una configuración en inglés y reiniciar Visual Studio
- Herramientas de configuración -> Opciones -> Entorno -> Configuración internacional -> Idioma a "Inglés"
estableciendo la configuración regional del hilo en inglés justo antes de que se produzca la excepción de la siguiente manera:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture ("en-US"); Thread.CurrentThread.CurrentUICulture = new CultureInfo ("en-US");
// llamar a mi método defectuoso ...
Entonces, ¿cómo puedo hacer que el .NET Framework emita mensajes de excepción en inglés? ¿Y hay algún enfoque que haga esto por solución o incluso por todo el sistema?
Editar: se lanza la excepción mientras se excitan mis pruebas unitarias. No estoy seguro de si esta es la razón por la que configurar la cultura del hilo no tuvo efecto.
¿Has intentado configurar la cultura de la interfaz de usuario en " en
" en web.config
? Más información here .
Aparentemente, todos los mensajes de excepción del marco están vinculados al idioma del sistema operativo instalado. A menos que instale una versión en inglés de Windows. Las excepciones de .Net framework no aparecerán en inglés. Aunque parece extraño que configurar CurrentUICulture como "en-US" no sirva, utilicé este tipo de solución alternativa para tener mensajes en inglés en mi sistema operativo Windows holandés.
Como acabo de descubrir, el problema estaba relacionado con tener un proyecto de prueba diferente. Aunque traté de configurar el idioma de la interfaz de usuario para el inglés en mi proyecto real, no hice lo mismo en el proyecto de prueba, que es la razón por la cual los mensajes de excepción todavía estaban en alemán cuando miraba los resultados de la prueba.
Configurar el idioma de la interfaz de usuario en el método de prueba justo antes de que se lanzara la excepción, fue el truco para mí.
Desinstale el paquete de idioma alemán:
Inicio - Panel de control - Programas y funciones - Microsoft .NET Framework (4 Client Profile) Language Pack DEU - Desinstalar (Desinstalar)
Es posible que deba repetir la desinstalación para cada versión de .NET Framework que encuentre allí.
En realidad, no existe una buena solución para esto, vote sobre Connect para este enfoque
Probé los siguientes cambios en web.config y me ayudó:
<system.web>
<globalization uiCulture="en-US" culture="en-US" />
...