2009-03-02 5 views
10

В предыдущих версиях VS.NET или .NET Framework по умолчанию вы получили сообщения об исключениях по умолчанию. Если вы установили «языковой пакет», вы получили сообщения об исключениях на языке этого языкового пакета.Visual Studio.NET 2008 не дает мне сообщений об исключениях извне

Теперь я работаю с английским VS.NET 2008 (языковые пакеты не установлены) на голландской Windows Vista.

Когда я разрабатываю, и я пишу код, который запускает исключение, сообщение об исключении, которое я получаю, находится на голландском языке (на языке моей ОС). Я не хочу, чтобы он был на голландском; Я хочу, чтобы это было на английском. (Причины очевидны: проще в Google, и те, которые переведены сообщения об ошибках, - это дерьмо).

В VS.NET мои международные настройки установлены на «английский», в Windows Vista мои региональные настройки установлены на «Голландский/Бельгия». Как я могу получить английские сообщения об исключениях, не меняя ничего на свои региональные настройки в Windows?

+0

Очень хорошие вопросы, это продолжает происходить и со мной. И это намного сложнее найти ответы! –

+0

Спасибо, что задали этот вопрос! У меня была та же проблема, и голландские переводы сообщений ошибок ужасны. Как раз на стороне примечания, мне смешно, что вы не можете просто изменить Windows Vista на другой язык, не покупая самую дорогую версию (это еще хуже при использовании Windows Mobile, потому что большинство магазинов здесь продают только голландские версии). –

ответ

8

После некоторого поиска в Stackoverflow и других сайтах в сети кажется, что Windows Vista решает, какие языковые пакеты должны быть установлены, и, похоже, нет способа удалить эти языковые пакеты (в XP это было возможно) ,

У меня нет Vista Ultimate (что позволит вам устанавливать несколько языковых пакетов бок о бок).

Итак, что я сделал сейчас, это:

Я создал пользовательский условный символ компиляции (проявитель), и в моем приложении, у меня есть этот код:

#if DEVELOPER 

Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-us"); 

#endif 

Мне просто нужно убедиться, что, когда я создаю приложение для развертывания, я не включаю это условное определение ... (Но я могу легко сделать это, так как мое приложение находится под CI).

+0

Хм, вы знаете, это может исправить проблему, которую я тоже получил, спасибо, что опубликовал это :) – RYFN

-1

Это (скорее всего), потому что у вас установлен голландский NetFX.

+0

Насколько я знаю, не существует локализованного голландского DotNetFx. Чтобы быть уверенным: знаете ли вы, как я могу проверить, есть ли у меня голландский или английский язык? –

0

Thread.CurrentThread.CurrentUICulture основан на языке вашей установленной ОС. Поэтому установка английской версии вашей ОС - ваш единственный вариант.

Или как вы указали настройку Thread.CurrentThread.CurrentUICulture для «en-Us» в каждом приложении, которое вы кодируете, кажется, мне довольно «довольно неудобно».

+0

Это действительно неудобно, и не более чем обходной путь. Повторная установка моей ОС не является вариантом. –

0

Существуют языковые пакеты для .Net Framework для почти любого языка.

Посмотрите, что вы найдете в установленном программном обеспечении и удалите этот языковой пакет. Это приведет к тому, что VS2008 принесет сообщения об ошибках и т. Д. На английском языке.

+0

AFAIK, это было верно для предыдущих версий .NET. Проверьте мой вопрос, где я упоминал об этом. –

Смежные вопросы