Как мне опубликовать / развернуть проект MVC с помощью ResX Resources? - PullRequest
6 голосов
/ 21 августа 2010

Я написал ОЧЕНЬ простое приложение MVC, которое просто отображает одну строку из файла ресурсов. Он отлично работает на моей локальной машине, но при развертывании проекта на веб-сервере я получаю сообщение об ошибке.

CS0103: название «Ресурсы» не существовать в текущем контексте

Вы можете очень легко повторить то, что я делаю, всего за 10 шагов!

  1. Создание нового веб-приложения MVC 2.
    (Файл-> Новый-> Проект-> Веб-приложение ASP.NET MVC 2, откажитесь от проекта модульного тестирования)

  2. Добавьте папку «App_GlobalResources».
    (щелкните проект правой кнопкой мыши и выберите «Добавить-> Добавить папку ASP.NET-> App_GlobalResources»)

  3. Добавьте файл ресурсов в эту папку.
    (щелкните папку правой кнопкой мыши и выберите «Добавить-> Новый элемент ...-> Файл ресурсов». Назовите его Strings.resx)

  4. Добавить одну строку в таблицу ресурсов.
    (Name = "HelloWorld", Value = "Я локализовал Hello World!")

  5. Установите свойства файла для файла ресурсов.
    (Щелкните файл Strings.resx и введите в окне свойств значение Build Action = "Embedded Resource" и CustomTool = " PublicResXFileCodeGenerator ")

  6. Добавить новый контроллер
    (Щелкните правой кнопкой мыши папку «Контроллеры» и выберите «Добавить-> Контроллер ... Назовите его HelloWorldController.cs)»

  7. Добавить представление
    (С помощью курсора в методе Index в HelloWorldController.cs Нажмите CTRL-MV. Используйте значения по умолчанию, включая View name = "Index")

  8. Измените представление так, чтобы оно отображало нашу строку из файла ресурсов.
    Замените содержимое заполнителя MainContent на

    <h2><%: Resources.Strings.HelloWorld %></h2>
    
  9. Запустите его локально, чтобы проверить его работоспособность. Что и должно.

  10. Опубликуйте его на веб-сервере и перейдите по ссылке "http://localhost/HelloWorld"

Здесь я вижу ошибку, описанную вверху.

Я полагаю, что настройки, которые я установил для файла ResX, неверны и ресурс не публикуется на сервере.

Помощь очень ценится.

Спасибо!

1 Ответ

15 голосов
/ 21 августа 2010

Ах, ха!Догадаться.В БОЛЬШОЙ части этой статьи:http://odetocode.com/Blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx

Похоже, папка App_GlobalResources НЕ совместима с MVC.Поэтому я переместил мой файл ResX в новую папку ~ / Resources / Strings / Strings.resx

Это вместе с 1 незначительным изменением для установки свойства файла Пространство имен пользовательских инструментов = Ресурсы

и проблема решена!

...