2015-01-19 3 views
-1

У меня проблема, которая уже стоила мне некоторых вечеров для решения. Я перенес веб-проект ASP.NET в веб-приложение.Проблема глобальных ресурсов ASP.NET

Моя основная проблема - файлы .resx ниже App_GlobalResources. Предположим, что у меня есть MyStrings.resx (= культура по умолчанию) и MyStrings.en.resx (да, английский не является моим дефолтом).

Если я создаю файлы в растворе в обозревателе решений с «Добавить ...», я получаю следующие параметры: * Строить Действие: Содержание * Пользовательский инструмент: GlobalResourceProxyGenerator

Я бы предположил, что по умолчанию для большинства случаев это нормально, но у меня уже есть две проблемы с этим: a) Если я оставлю действие сборки как «Содержимое», я получаю исключение MissingManifestResourceException при использовании ResourceManager.GetString в коде. Решение. Измените его на «EmbeddedResource». b) На вашем компьютере отсутствует файл GlobalResourceProxyGenerator. Если я выберу «Запустить пользовательский инструмент» в .resx, я получаю сообщение об ошибке «Невозможно найти пользовательский инструмент« ... »в этой системе. Отличное решение. Измените его на« PublicResXFileCodeGenerator ». Это работает.

, если я оставил настройку в PublicResXFileCodeGenerator, все компилируется, но когда я запускаю решение (IIS и VS Express 2013 для Интернета), я получаю дружеское сообщение, которое я получил «Resources.MyStrings» как в MyWebSite.dll, так и в App_GlobalResources.dll.

ОК, я изменить пользовательский инструмент для «ResXFileCodeGenerator» Теперь все работает отлично я сейчас развертывание решения веб-сервера Там я CS0122:.... Resources.MyStrings недоступен из-за его уровня защиты Вероятно, из-за этого «внутренняя» декларация.

К настоящему времени я полностью потерян. Любая помощь в очистке ситуации?

Окружающая среда: IIS локально и онлайн VS Express 2013 для Web Два языка. Для обеих установок являются: Сложение Действие: Embedded Resource Копировать в выходной каталог: Не копировать Выборочная Инструмент: ResXfileCodeGenerator пользовательского инструмента Пространство имен: Ресурсы

Для сгенерированных файлов дизайнер (только язык по умолчанию) настройки являются : Строить Действие: Компиляция копировать в выходной каталог: не копировать

Любая помощь приветствуется

+0

В чем проблема с созданием файла сгенерированного ресурса? Откройте .resx. файл с дизайнером и сделать его общедоступным. –

+0

Если я это сделаю, «Пользовательский инструмент» будет изменен на PublicResXFileCodeGenerator. Если я это сделаю, у меня возникла проблема с тем, что код определен в двух местах. – Sparhawk

+0

Мне было бы интересно узнать, почему кто-то оценил тему как -1. Это непонятно? Отсутствие исследований? – Sparhawk

ответ

0

Я действительно не найти источник моих проблем, но я нашел хорошее решение. Основная проблема заключалась в том, что класс Resources.MyStrings присутствовал как в MyWebsite.dll, так и в App_GlobalResoures.dll. Я не узнал, какие намеченные настройки должны удостовериться, что вы получите его только один раз.

Мое решение: я создал папку «Ресурсы», скопировал все мои файлы .resx и удалил App_GlobalResources. Прекрасно работает на разных языках.

Почему существует папка «App_Globalresources»?

Смежные вопросы