App_GlobalResources Глобализация - PullRequest
2 голосов
/ 06 марта 2012

У меня проблемы с глобализацией.Я унаследовал очень старый проект в ASP.NET 2.0.Он содержит несколько файлов глобализации для нескольких языков.

Однако, когда я создаю приложение для развертывания, оно отлично работает в нашей тестовой среде.Но когда мы копируем приложение в производственную среду, оно выдает ошибку в <% $ Resources: Global, MyStringHere%>.

Заявлении о том, что MyStringHere не был найден в файле ресурсов.

Почему это нормально работает в средах разработки и тестирования, а не на производстве?Файлы одинаковы в разных средах (хотя файлы inetpub расположены в разных каталогах на каждом компьютере).

У кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ:

Очень странно.Если я вызываю ресурс из кода.

public string _MyStringName = Resources.Global.MyStringHere;

Это прекрасно работает во всех средах.

Но, используя старое:

<%$Resources: Global, MyStringHere %>

Ошибка втолько производство.

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Вы уверены, что ваши файлы .resx из App_GlobalResources скопированы на сайт развертывания?Файлы App_GlobalResources обычно предполагается использовать с Build Action = Content, а не Build Action = Embedded Resources.

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

0 голосов
/ 06 марта 2012

Просто выстрел в темноте, но у вас есть ключ, который настроен на основе имен среды или машины? Мы делаем это во многих наших проектах. Некоторые из наших проектов будут выполняться только в определенных условиях по определенной причине. Другое предположение - проверить, есть ли у вас #if (DEBUG) где-то пропускающий код.

...