2012-03-05 7 views
2

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

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

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

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

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

EDIT:

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

public string _MyStringName = Resources.Global.MyStringHere; 

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

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

<%$Resources: Global, MyStringHere %> 

ли erroring в производстве только.

ответ

0

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

+0

No #DEBUG. Очень странно, почему это делается. Файлы ресурсов не изменялись годами, и единственное, что меняется, это файл App_GlobalResources.compiled. Изменены файлы hash/filehash/resHash. – Sean

+0

Что происходит, когда вы выполняете широкий поиск решения для «MyStringHere» ... видите ли вы, что он определен в файле ресурсов? – Zeus

+0

Да. Он определен - он отлично работает при разработке и даже в режиме выпуска на машине разработки. – Sean

0

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

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

+0

Да файлы ресурсов находятся на производственных машинах. Однако выбор файла ресурсов не дает мне опции «Действие сборки» в свойствах. – Sean