Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Converte entre arquivos .txt e .resx (formato de recurso baseado em XML) e arquivos binários do common language runtime .resources que podem ser inseridos em um executável binário de runtime ou compilados em assemblies satélites. Essa tarefa normalmente é usada para converter arquivos .txt ou .resx em arquivos .resources. A tarefa GenerateResource é funcionalmente semelhante a resgen.exe.
Cuidado
Os recursos em arquivos .resx podem ser serializados usando BinaryFormatter, que não é seguro. Inclua somente os arquivos .resx no processo de build em que você confia.
Parâmetros
A tabela a seguir descreve os parâmetros da tarefa GenerateResource.
| Parâmetro | Descrição |
|---|---|
AdditionalInputs |
Parâmetro de ITaskItem[] opcional.Contém entradas adicionais para a verificação de dependência feita por essa tarefa. Por exemplo, os arquivos de projeto e de destino normalmente devem ser entradas, para que, se forem atualizados, todos os recursos sejam regenerados. |
EnvironmentVariables |
Parâmetro de String[] opcional.Especifica uma matriz de pares nome-valor de variáveis de ambiente que devem ser passadas para o resgen.exegerado, além de (ou substituir seletivamente) o bloco de ambiente regular. |
ExcludedInputPaths |
Parâmetro de ITaskItem[] opcional.Especifica uma matriz de itens que especifica caminhos dos quais as entradas controladas serão ignoradas durante a verificação atualizada. |
ExecuteAsTool |
Parâmetro de Boolean opcional.Se true, executará tlbimp.exe e aximp.exe da estrutura de destino apropriada para gerar os assemblies de wrapper necessários. Esse parâmetro permite o direcionamento múltiplo de ResolveComReferences. |
FilesWritten |
Parâmetro de saída ITaskItem[] opcional.Contém os nomes de todos os arquivos gravados em disco, incluindo o arquivo de cache, se houver. Esse parâmetro é útil para implementações do Clean. |
MinimalRebuildFromTracking |
Parâmetro de Boolean opcional.Obtém ou define um comutador que especifica se o build incremental rastreado será usado. Se true, o build incremental será ativado; caso contrário, uma recompilação será forçada. |
NeverLockTypeAssemblies |
Parâmetro de Boolean opcional.Obtém ou define um valor booliano que especifica se um novo AppDomain para avaliar os arquivos de recursos ( .resx) (true) ou criar um novo AppDomain somente quando os arquivos de recursos fizerem referência ao assembly de um usuário (false). |
OutputResources |
Parâmetro de saída ITaskItem[] opcional.Especifica o nome dos arquivos gerados, como arquivos .resources. Se você não especificar um nome, o nome do arquivo de entrada correspondente será usado e o arquivo de .resources criado será colocado no diretório que contém o arquivo de entrada. |
PublicClass |
Parâmetro de Boolean opcional.Se true, criará uma classe de recurso fortemente tipada como uma classe pública. |
References |
Parâmetro de String[] opcional.Referências a tipos de carga de arquivos de .resx.
.resx elementos de dados de arquivo podem ter um tipo .NET. Quando o arquivo de .resx é lido, esse tipo deve ser resolvido. Normalmente, ela é resolvida com êxito usando regras de carregamento de tipo padrão. Se você fornecer assemblies em References, eles têm precedência.Esse parâmetro não é necessário para recursos fortemente tipados. |
SdkToolsPath |
Parâmetro de String opcional.Especifica o caminho para as ferramentas do SDK, como resgen.exe. |
Sources |
Parâmetro de ITaskItem[] necessário.Especifica os itens a serem convertidos. Os itens passados para esse parâmetro devem ter uma das seguintes extensões de arquivo: - .txt: especifica a extensão de um arquivo de texto a ser convertido. Os arquivos de texto só podem conter recursos de cadeia de caracteres.- .resx: especifica a extensão de um arquivo de recurso baseado em XML a ser convertido.- .restext: especifica o mesmo formato que .txt. Essa extensão diferente será útil se você quiser distinguir claramente os arquivos de origem que contêm recursos de outros arquivos de origem em seu processo de build.- .resources: especifica a extensão de um arquivo de recurso a ser convertido. |
StateFile |
Parâmetro de ITaskItem opcional. Especifica o caminho para um arquivo de cache opcional que é usado para acelerar a verificação de dependência de links em .resx arquivos de entrada. |
StronglyTypedClassName |
Parâmetro de String opcional.Especifica o nome da classe para a classe de recurso fortemente tipada. Se esse parâmetro não for especificado, o nome base do arquivo de recurso será usado. |
StronglyTypedFilename |
Parâmetro de ITaskItem opcional. Especifica o nome do arquivo para o arquivo de origem. Se esse parâmetro não for especificado, o nome da classe será usado como nome de arquivo base, com a extensão dependente do idioma. Por exemplo: MyClass.cs. |
StronglyTypedLanguage |
Parâmetro de String opcional.Especifica o idioma a ser usado ao gerar a fonte de classe para o recurso fortemente tipado. Esse parâmetro deve corresponder exatamente a um dos idiomas usados pelo CodeDomProvider. Por exemplo: VB ou C#.Ao passar um valor para esse parâmetro, você instrui a tarefa a gerar recursos fortemente tipados. |
StronglyTypedManifestPrefix |
Parâmetro de String opcional.Especifica o namespace de recurso ou o prefixo de manifesto a ser usado na fonte de classe gerada para o recurso fortemente tipado. |
StronglyTypedNamespace |
Parâmetro de String opcional.Especifica o namespace a ser usado para a fonte de classe gerada para o recurso fortemente tipado. Se esse parâmetro não for especificado, todos os recursos fortemente tipados estarão no namespace global. |
TLogReadFiles |
Parâmetro opcional ITaskItem[] somente leitura.Obtém uma matriz de itens que representam os logs de acompanhamento de leitura. |
TLogWriteFiles |
Parâmetro opcional ITaskItem[] somente leitura.Obtém uma matriz de itens que representam os logs de acompanhamento de gravação. |
ToolArchitecture |
Parâmetro de System.String opcional. Usado para determinar se Tracker.exe precisa ou não ser usado para gerar ResGen.exe. Deve ser analisado para um membro da enumeração ExecutableType. Se String.Empty, usará uma heurística para determinar uma arquitetura padrão. Deve ser analisado para um membro da enumeração Microsoft.Build.Utilities.ExecutableType. |
TrackerFrameworkPath |
Parâmetro de String opcional.Especifica o caminho para o local apropriado do .NET Framework que contém FileTracker.dll. Se definido, o usuário assumirá a responsabilidade de garantir que a bitness do FileTracker.dll que eles passam corresponda à bitness do ResGen.exe que pretende usar. Se não estiver definida, a tarefa decidirá o local apropriado com base na versão atual do .NET Framework. |
TrackerLogDirectory |
Parâmetro de String opcional.Especifica o diretório intermediário no qual os logs de acompanhamento da execução dessa tarefa serão colocados. |
TrackerSdkPath |
Parâmetro de String opcional.Especifica o caminho para o local apropriado do SDK do Windows que contém Tracker.exe. Se definido, o usuário assumirá a responsabilidade de garantir que a bitness do Tracker.exe que eles passam corresponda à bitness do ResGen.exe que pretende usar. Se não estiver definida, a tarefa decidirá o local apropriado com base no SDK atual do Windows. |
TrackFileAccess |
Parâmetro de Boolean opcional. Se for true, o diretório do arquivo de entrada será usado para resolver caminhos de arquivo relativos. |
UsePreserializedResources |
Parâmetro de Boolean opcional.Se true, especifica que os recursos que não são de cadeia de caracteres devem ser serializados usando PreserializedResourceWriter em vez de ResourceWriter, que não tem suporte no .NET Core ou no .NET 5 ou posterior. |
UseSourcePath |
Parâmetro de Boolean opcional.Se true, especifica que o diretório do arquivo de entrada deve ser usado para resolver caminhos de arquivo relativos. |
Observações
Como .resx arquivos podem conter links para outros arquivos de recurso, não é suficiente simplesmente comparar .resx e .resources carimbos de data/hora do arquivo para ver se as saídas estão atualizadas. Em vez disso, a tarefa GenerateResource segue os links nos arquivos .resx e verifica os carimbos de data/hora dos arquivos vinculados também. Isso significa que você geralmente não deve usar atributos Inputs e Outputs no destino que contém a tarefa GenerateResource, pois isso pode fazer com que ela seja ignorada quando ela realmente deve ser executada.
Além dos parâmetros listados acima, essa tarefa herda parâmetros da classe TaskExtension, que herda da classe Task. Para obter uma lista desses parâmetros adicionais e suas descrições, consulte de classe base TaskExtension.
Ao usar o MSBuild 4.0 para direcionar projetos do .NET 3.5, o build pode falhar em recursos x86. Para contornar esse problema, você pode criar o destino como um assembly AnyCPU.
O parâmetro UsePreserializedResources obtém seu valor da propriedade $(GenerateResourceUsePreserializedResources) no processo normal de build do .NET. Essa propriedade é definida como true por padrão em projetos e projetos do .NET Core que usam o .NET 5 ou posterior. Você pode definir $(GenerateResourceUsePreserializedResources) para true para permitir que o SDK do .NET crie projetos direcionados ao .NET Framework 4.6.1 ou posterior que usam recursos que não são de cadeia de caracteres. O assembly System.Resources.Extensions deve estar disponível em runtime. Ele está disponível no .NET Core 3.0 e posterior e no .NET 5 e posterior e pode ser usado no .NET Framework 4.6.1 ou posterior por meio de PackageReference.|
Exemplo
O exemplo a seguir usa a tarefa GenerateResource para gerar arquivos .resources dos arquivos especificados pela coleção de itens Resx.
<GenerateResource
Sources="@(Resx)"
OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
<Output
TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>
A tarefa GenerateResource usa os metadados <LogicalName> de um item de <EmbeddedResource> para nomear o recurso inserido em um assembly.
Supondo que o assembly se chama myAssembly, o código a seguir gera um recurso inserido chamado someQualifier.someResource.resources:
<ItemGroup>
<EmbeddedResource Include="myResource.resx">
<LogicalName>someQualifier.someResource.resources</LogicalName>
<WithCulture>false</WithCulture>
</EmbeddedResource>
</ItemGroup>
Sem os metadados <LogicalName>, o recurso seria nomeado myAssembly.myResource.resources. Este exemplo se aplica somente ao processo de build do Visual Basic e do Visual C#.
Consulte também
- Tarefas
- de referência da Tarefa