Задача 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[]. Элементы для преобразования. Элементы, передаваемые этому параметру, должны иметь одно из следующих файловых расширений:
|
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>