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


Задача GenerateResource

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

Параметры

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

Параметр

Описание

AdditionalInputs

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

Содержит дополнительные входные файлы для выполненной задачей проверки зависимостей.Например, для обеспечения повторного создания всех ресурсов в случае обновления файла проекта и целевых файлов эти файлы обычно должны быть входными.

EnvironmentVariables

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

Задает массив пар "имя-значение" переменных среды, которые должны быть переданы в созданный файл resgen.exe в дополнение к обычному блоку среды (или частично переопределяя его).

ExcludedInputPaths

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

Задает массив элементов, задающих пути, из которых отслеживаемые входные данные во время проверки обновлений игнорируются.

ExecuteAsTool

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

Если true, выполняет tlbimp.exe и aximp.exe из соответствующей требуемой версии .NET Framework из внешнего процесса для создания необходимых сборок-оболочек.Этот параметр позволяет настройку для различных версий ResolveComReferences.

FilesWritten

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

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

MinimalRebuildFromTracking

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

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

NeverLockTypeAssemblies

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

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

OutputResources

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

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

PublicClass

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

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

References

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

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

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

SdkToolsPath

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

Задает путь к средствам SDK, таким как resgen.exe.

Sources

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

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

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

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

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

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

StateFile

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

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

StronglyTypedClassName

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

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

StronglyTypedFilename

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

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

StronglyTypedLanguage

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

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

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

StronglyTypedManifestPrefix

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

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

StronglyTypedNamespace

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

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

TLogReadFiles

Необязательный параметр ITaskItem[], предназначенный только для чтения.

Получает массив элементов, представляющих журналы отслеживания чтения.

TLogWriteFiles

Необязательный параметр ITaskItem[], предназначенный только для чтения.

Получает массив элементов, представляющих журналы отслеживания записи.

ToolArchitecture

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

Используется для определения, необходимо ли использовать Tracker.exe для запуска ResGen.exe.

Должно быть распознаваемо в член перечисленияExecutableType.Если String.Empty, использует эвристический алгоритм для определения архитектуры по умолчанию.Должно быть распознаваемо в член перечисления Microsoft.Build.Utilities.ExecutableType.

TrackerFrameworkPath

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

Указывает путь к соответствующему местоположению .NET Framework, где содержится FileTracker.dll.

Если задано, пользователь отвечает за обеспечение того, что разрядность FileTracker.dll, который передается, совпадала с рязрядностью ResGen.exe, который предполагалось использовать.Если не установлен, задача выбирает соответствующее место на основании текущей версии .NET Framework.

TrackerLogDirectory

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

Задает промежуточный каталог, в котором будут размещены журналы отслеживания выполнения этой задачи.

TrackerSdkPath

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

Указывает путь к соответствующему местоположению Windows SDK, где содержится Tracker.exe.

Если задано, пользователь отвечает за обеспечение того, что разрядность Tracker.exe, который передается, совпадала с рязрядностью ResGen.exe, который предполагалось использовать.Если не установлен, задача выбирает соответствующее место на основании текущей версии Windows SDK.

TrackFileAccess

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

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

UseSourcePath

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

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

Заметки

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

Помимо параметров, которые перечислены выше, эта задача наследует параметры от класса TaskExtension, который наследует от класса Task.Чтобы получить список этих доп параметров и их описаний, см. Базовый класс TaskExtension.

При использовании MSBuild 4.0 для проектов .NET 3.5 сборка может дать сбой на ресурсах x86.Для временного решения этой проблемы вы можете построить цель как сборку AnyCPU.

Пример

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

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

Задача GenerateResource использует метаданные <LogicalName> элемента <EmbeddedResource> для именования ресурса, внедренного в сборку.

Предположим, что сборка имеет имя myAssembly; в следующем коде создается внедренный ресурс с именем someQualifier.someResource.resources:

<ItemGroup>   <EmbeddedResource Include="myResource.resx">       <LogicalName>someQualifier.someResource.resources</LogicalName>   </EmbeddedResource></ItemGroup>

Без метаданных <LogicalName> ресурс будет называться myAssembly.myResource.resources.Этот пример применяется только к процессу построения в Visual Basic и Visual C#.

См. также

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

Задачи MSBuild

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

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