Почему в модульных тестах культуры resx не обнаружены? - PullRequest
7 голосов
/ 28 февраля 2012

У меня есть встроенные строковые ресурсы в моем проекте .NET 4.0: Strings.resx и Strings.de.resx.

В рабочий код извлекаются правильные локализованные строки, в зависимости отзначение Strings.Culture:

Strings.Culture = new Culture("de");
string deString = Strings.Welcome;  // 'Willkommen'
Strings.Culture = new Culture("en");
string enString = Strings.Welcome;  // 'Welcome'

Но в моем коде модульного теста (с использованием MSTest) строки из Strings.de.resx никогда не возвращаются - я только получаюстроки из Strings.resx, независимо от значения Strings.Culture или Threads.CurrentThread.CultureUICulture.

Может кто-нибудь помочь?

1 Ответ

7 голосов
/ 02 марта 2012

Хорошо, я смог воспроизвести эту проблему.Прежде всего попробуйте отключить развертывание.Перейдите в «local.testsettings» и снимите флажок «Развертывание» -> «Включить развертывание».Когда этот флаг установлен, VS, кажется, не развертывает спутниковые сборки для меня.Если вам нужен какой-то элемент развертывания, используйте DeploymentItemAttribute:

[DeploymentItem(
   @".\YourProject\bin\Debug\de\YourProject.resources.dll", @".\de\")]

или используйте ту же вкладку «Развертывание» для выбора подходящих сателлитных сборок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...