Добавление и редактирование ресурсов

Обновлен: Ноябрь 2007

В приложениях Visual C# часто содержатся данные, не являющиеся исходным кодом. Такие данные называются ресурсами проекта и могут включать двоичные данные, текстовые файлы, аудио- и видеофайлы, таблицы строк, значки, изображения, XML-файлы или любой другой тип данных, необходимых для приложения. Данные ресурсов проекта хранятся в формате XML в файле с расширением RESX (имя по умолчанию — Resources.resx), который можно открыть в обозревателе решений. Дополнительные сведения о ресурсах проекта содержатся в разделе Работа с файлами ресурсов.

Добавление ресурсов в проекты

Для добавления ресурсов в проект щелкните Добавить существующий элемент в меню Проект или щелкните кнопку Добавить ресурс на странице Ресурсы в конструкторе проектов.

Ресурсы можно добавить в проект в качестве связанных (внешние файлы) или внедренных ресурсов (внедренные непосредственно в файл RESX).

  • При добавлении связанного ресурса в файле RESX со сведениями о ресурсах проекта будет указан только относительный путь к файлу ресурса на диске. Если в качестве связанных ресурсов добавить изображения, видео или другие сложные файлы, их можно будет изменять в редакторе по умолчанию, сопоставленном с соответствующим типом файла в конструкторе ресурсов.

  • При добавлении внедренных ресурсов данные хранятся непосредственно в файле ресурсов проекта (RESX). Строки могут храниться только как внедренные ресурсы.

Дополнительные сведения см. в разделе Связанные и внедренные ресурсы.

Редактирование ресурсов

Редактор ресурсов позволяет добавлять и изменять ресурсы проектов во время разработки, связав каждый тип ресурса с приложением по умолчанию для редактирования. Для открытия конструктора ресурсов щелкните правой кнопкой мыши Свойства в обозревателе решений, выберите команду Открыть и перейдите на вкладку Ресурсы в конструкторе проектов. Дополнительные сведения см. в разделе Страница "Ресурсы" в конструкторе проектов. На следующем рисунке показаны пункты меню конструктора ресурсов.

Элементы меню конструктора ресурса

Для редактирования внедренных ресурсов необходимо работать непосредственно в файле RESX для управления отдельными символами или байтами. Именно поэтому сложные типы файлов удобно хранить в виде связанных ресурсов во время разработки. Двоичный редактор можно использовать для редактирования файлов ресурсов, в том числе файла RESX, на двоичном уровне в шестнадцатеричном формате или формате ASCII. С помощью Редактор изображений можно редактировать значки, курсоры, файлы JPEG и GIF, хранящиеся в качестве связанных ресурсов. Для редактирования этих типов файлов можно выбрать и другие приложения. Дополнительные сведения см. в разделе Viewing and Editing Resources in a Resource Editor.

ms228378.alert_note(ru-ru,VS.90).gifПримечание.

Двоичный редактор и редактор изображений доступны во всех выпусках Visual Studio за исключением выпуска Express.

Компиляция ресурсов в сборки

При построении приложения Visual Studio вызывает средство resgen.exe для преобразования ресурсов приложения во внутренний класс с именем Resources. Этот класс находится в файле Resources.Designer.cs, который вложен в файл Resources.resx в обозревателе решений. Класс Resources инкапсулирует все ресурсы проекта в статические свойства get только для чтения, что обеспечивает строгую типизацию ресурсов во время выполнения. Во время построения в интегрированной среде разработки Visual C# все инкапсулированные данные ресурсов, включая как внедренные в файл RESX, так и связанные файлы, компилируются непосредственно в сборку приложения (файл EXE или DLL). Другими словами, интерфейс IDE Visual C# всегда использует параметр компилятора /resource. При построении из командной строки можно указать параметр компилятора /linkresource, что позволит развернуть ресурсы в отдельном от основной сборки приложения файле. Это дополнительная возможность может потребоваться в исключительно редких случаях. Более типичный сценарий развертывания ресурсов отдельно от основной сборки приложения заключается в использовании вспомогательных сборок (см. описание далее).

Доступ к ресурсам во время выполнения

Чтобы получить доступ к ресурсу во время выполнения, просто создайте ссылку на него, как на любой другой член класса. В следующем примере демонстрируется получение ресурса растрового изображения с именем "Image01".

System.Drawing.Bitmap bitmap1 = Properties.Resources.Image01;

Внутри свойство get использует класс ResourceManager для создания нового экземпляра объекта.

Дополнительные сведения см. в разделе Генератор файлов ресурсов (Resgen.exe).

Ресурсы во вспомогательных сборках

При создании приложения, которое планируется локализовать (перевести) на несколько языков, каждый набор строк, относящихся к определенному языку, можно хранить как ресурс в отдельной вспомогательной сборке. При распространении приложения потребуется включить основную сборку приложения вместе со всеми соответствующими вспомогательными сборками. Затем можно добавить другие вспомогательные сборки или изменить существующие без повторной компиляции основной сборки приложения. Дополнительные сведения о вспомогательных сборках можно найти в статьях "Создание вспомогательных сборок" и "Обнаружение и использование ресурсов для определенного языка и региональных параметров" в библиотеке MSDN в Интернете.

См. также

Другие ресурсы

Использование интегрированной среды разработки (IDE) Visual C# Express