VS 2008 не понимает .resource файлы - PullRequest
0 голосов
/ 09 апреля 2010

Я пытаюсь добавить поддержку глобализации в свое приложение C #. Согласно MSDN, должен быть один встроенный файл ресурсов для нейтральных и сателлитных DLL-файлов с файлами ресурсов для других культур.

Я создал 2 сателлитные DLL-библиотеки без проблем и заставил мое приложение автоматически загружать нужную, используя ResourceManager. Но я не могу встроить файл ресурсов нейтральной культуры по умолчанию в мой исполняемый файл. Когда я удаляю все сателлитные DLL или устанавливаю культуру для какой-либо культуры, для которой у меня нет сателлитной DLL, я получаю исключение «Не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры». когда приложение пытается создать ResourceManager.

Похоже, что VS 2008 не включает мой файл .resource в основную сборку. Я пробовал разные способы встроить файл ресурсов: скомпилировать его с помощью resgen.exe из текстового файла и добавить в проект; изменение его имени для добавления второго расширения .resources; создание файла .resx с тем же именем; и т.д. И я до сих пор не вижу способа внедрить и использовать ResourceManager файл ресурсов - у меня такое же исключение.

Как правильно добавить файл ресурсов нейтральной культуры по умолчанию в приложение в VS 2008?

Ответы [ 2 ]

1 голос
/ 09 апреля 2010

Хорошо, я решил эту проблему небольшим взломом.

Я скомпилировал файл ресурсов с помощью resgen.exe, как описано в MSDN, затем добавил его в проект, переименовал в «resources» и изменил действие сборки с «None» на «Embedded resource».

Похоже, VS 2008 добавляет "." в качестве префикса к имени файла ресурса. Так что если вы назовете файл ресурсов ".resources", он не будет работать, потому что на самом деле VS назовет его "..resources".

0 голосов
/ 09 апреля 2010

в .Net файлы ресурсов используют расширение .resx. Чтобы встроить его в ваш проект, убедитесь, что «Пользовательский инструмент» на странице свойств файла .resx использует «ResXCodeGenerator»

Надеюсь, это поможет,

...