Задача MSBuild AssignCulture присваивает пустую культуру псевдокультурам (qps-ploc, qps-plocm)

StackOverflow https://stackoverflow.com/questions/8308577

Вопрос

У меня есть несколько локализованных файлов RESX в моем проекте:

    Messages.resx
    Messages.de.resx
    Messages.qps-ploc.resx

Последний является псевдолокализованным текстовым ресурсом для целей тестирования.Я бы хотел, чтобы он был скомпилирован в вспомогательную сборку (т. е.project/qps-ploc/project.resources.dll ) как и остальные локализации .Но по какой-то причине задача AssignCulture присваивает этому ресурсу пустую культуру, и она не компилируется в результате.

Фрагмент из журнала MSBuild:

    Task "AssignCulture"
      Culture of "de" was assigned to file "Resources\Messages.de.resx".
      Culture of "" was assigned to file "Resources\Messages.resx".
      Culture of "" was assigned to file "Resources\Messages.qps-ploc.resx".
    Done executing task "AssignCulture".

Культуры псевдолокализации были включены в реестре, как описано выше здесь и new CultureInfo("qps-ploc") возвращает правильную псевдокультуру.

Является ли это ожидаемым поведением от AssignCulture или просто я использую его неправильно?

Это было полезно?

Решение

Не уверен, что произошло, но внезапно все начало работать.Возможно, это как-то связано с перезагрузкой системы.

Другие советы

У меня была такая же проблема, и она также разрешилась сама собой после перезагрузки.Я думаю, это потому, что задача AssignCulture должна проверять культуру, используемую в файле ресурсов, и, если это не стандартная или пользовательская культура, в которой есть файл .nlp в вашей папке Windows \ Globalization, назначение завершается ошибкой во время компиляции, и файл ресурсов не создается.

В моем случае я только что создал пользовательскую культуру, но, полагаю, Visual Studio не знала об этом, поскольку она, должно быть, кэшировала файлы ресурсов, которые были найдены при предыдущей перезагрузке системы.Повторная перезагрузка компьютера, должно быть, обновила кэшированные файлы ресурсов (включая пользовательские), после чего задача AssignCulture смогла успешно сопоставить ресурс и файл ресурсов был создан.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top