Я хочу скомпилировать App_GlobalResources / Strings.resx в мою сборку (и в конечном итоге использовать спутниковые сборки для Strings.es.resx, Strings.fr.resx и т. Д.), Но следующая ошибка возникает после публикации приложения:
"Не удалось загрузить файл или сборку 'App_GlobalResources' или одну из ее зависимостей. Система не может найти указанный файл."
Шаги для воспроизведения:
- Создайте новый проект ASP.NET MVC.
- Добавьте папку App_GlobalResources и файл Strings.resx .
- Установите для действия сборки файла значение «Встроенный ресурс»
- Добавить строку в Strings.resx и использовать ее в
HomeController.Index()
, например. ViewData["Message"] = Strings.MyTest
- F5 для отладки, отлично работает.
- Публикация в IIS и (поскольку Strings.resx исключена из публикации) вы получите вышеуказанную ошибку на опубликованном сайте.
Могут ли проекты ASP.NET MVC использовать строковые ресурсы, скомпилированные в dll, и если да, то что я делаю неправильно?
Обновление: вот что я вижу в Reflector:
Так почему ResourceManager не находит их? Разве не предполагается откат к основной сборке по умолчанию?