У меня есть веб-проект, запущенный в VS 2008. У нас есть некоторые глобальные файлы ресурсов (* .resx) в папке App_GlobalResources для интернационализации. Все это работает как очарование моей локальной установки IIS из VS.Глобальные ресурсы не могут быть разрешены после публикации Веб-сайта в VS2008
Но когда я публикую свой веб-проект в локальной файловой системе и/или на другом сервере, все ресурсы больше не могут быть найдены. Поэтому я думаю, что предварительная компиляция каким-то образом искажает материал. Когда я вызываю pre-compiled web, я получаю сообщение об ошибке, что объект ресурса с ключом xyz не может быть найден, хотя его можно было найти раньше.
Я проверил с помощью отражателя .NET, если материал ресурса внес его в *. DLL. Все эти идентификаторы есть (bin/Web.dll, bin/< культура > /Web.resources.dll). Идентификаторы загружаются следующим образом:
<asp:MenuItem NavigateUrl="~/OrderNew.aspx" Text="<%$ Resources:MyProject, MenuNewOrder %>" Value="NewOrder">
Файлы ресурсов называются MyProject.resx и MyProject. < культура > .resx где < культура > соответствует конкретной культуре (то есть MyProject.de-DE.resx).
Любые идеи, как это решить?
Я очень ценю любую помощь.
Благодаря
Edit:
Если скопировать папку App_GlobalResources вручную на выходе, ресурсы могут быть загружены в обычном режиме. Поэтому я действительно задаюсь вопросом, что такое предварительная компиляция.
Меня все еще интересует вопрос «правильный путь».
Ваше решение, к которому я наконец пришел, - нам, похоже, нужно использовать «встроенный ресурс» для компиляции для доступа к ресурсам из кода, но сами файлы в/app_globalresources для доступа к ним с помощью <% $ Ресурсы: Класс, ResKey%>. Похоже, что должен быть лучший способ. – Ripside