Поделиться через


Задача GenerateResource

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

Преобразование TXT- и RESX-файлов (файлы ресурсов на основе XML) и двоичные файлы с расширением .resources общеязыковой среды выполнения, которые могут быть внедрены в двоичный исполняемый файл среды выполнения или скомпилированы в сопутствующие сборки. Эта задача обычно используется для преобразования TXT- и RESX-файлов в файлы .resources. Задача GenerateResource функционально аналогична задаче resgen.exe.

Параметры

В следующей таблице описаны параметры задачи GenerateResource.

Параметр

Описание

FilesWritten

Необязательный выходной параметр ITaskItem[].

Имена всех файлов, записываемых на диск. В этот набор включен файл кэша, если он имеется. Этот параметр применяется для реализации метода Clean.

OutputResources

Необязательный выходной параметр ITaskItem[].

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

PublicClass

Необязательный параметр Boolean.

При значении true создается строго типизированный класс ресурсов — открытый класс.

References

Необязательный параметр String[].

Ссылки на типы загрузки из файлов .resx. Элементы данных в файле .resx могут иметь тип .NET. При считывании файла .resx это противоречие должно быть разрешено. Обычно это разрешается с помощью стандартных правил загрузки типов. Сборки, указанные в параметре References, имеют приоритет.

Этот параметр не требуется для строго типизированных ресурсов.

Sources

Обязательный параметр ITaskItem[].

Элементы для преобразования. Элементы, передаваемые этому параметру, должны иметь одно из следующих файловых расширений:

  • .txt: расширение текстового файла, который должен быть преобразован. Текстовые файлы могут содержать только строковые ресурсы.

  • .resx: расширение файла ресурсов на основе XML, который должен быть преобразован.

  • .restext: тот же формат, что и .txt. Полезно использовать это альтернативное расширение, если требуется отделить исходные файлы, содержащие ресурсы, от других исходных файлов в процессе построения.

  • .resources: расширение файла ресурсов, который должен быть преобразован.

StateFile

Необязательный параметр ITaskItem.

Путь к необязательному файлу кэша, используемому для ускорения проверки зависимости для ссылок во входных файлах .resx.

StronglyTypedClassName

Необязательный параметр String.

Имя класса для строго типизированного класса ресурсов. Если этот параметр не задан, то используется базовое имя файла ресурсов.

StronglyTypedFilename

Необязательный параметр ITaskItem.

Имя для исходного файла. Если этот параметр не задан, то в качестве базового имени файла используется имя класса, расширение которого зависит от языка. Например, MyClass.cs.

StronglyTypedLanguage

Необязательный параметр String.

Язык, применяемый во время создания источника класса для строго типизированного ресурса. Этот параметр должен точно совпадать с одним из языков, применяемых поставщиком CodeDomProvider. Пример: VB или C#.

Передавая значение этому параметру, вы задаете этой задаче условие создавать строго типизированные ресурсы.

StronglyTypedNamespace

Необязательный параметр String.

Пространство имен, используемое в создаваемом источнике класса для строго типизированного ресурса. Если этот параметр не задан, то все строго типизированные ресурсы находятся в глобальном пространстве имен.

UseSourcePath

Необязательный параметр Boolean.

При значении true задается условие, по которому каталог входного файла будет использоваться для разрешения конфликтов относительных путей к файлу.

Заметки

Поскольку в файлах .resx могут содержаться ссылки на другие файлы ресурсов, недостаточно просто сравнить временные штампы файла .resx и .resource, чтобы проверить актуальность выходных данных. Вместо этого задача GenerateResource обращается по ссылкам в файлах .resx и проверяет временные штампы связанных файлов. Это значит, что обычно не следует использовать атрибуты Inputs и Outputs в целевом объекте, содержащем задачу GenerateResource, так как это может вызвать пропуск задачи в момент ее фактического запуска.

Пример

В следующем примере задача GenerateResource используется для создания файлов .resources из файлов, заданных коллекцией элементов Resx.

<GenerateResource
    Sources="@(Resx)"
    OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
    <Output
        TaskParameter="OutputResources"
        ItemName="Resources"/>
</GenerateResource>

См. также

Основные понятия

Задачи MSBuild

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

Справочные сведения о задачах MSBuild