> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Intelligent Delivery: recursos e receitas

> Intelligent Delivery: recursos e receitas

Este tópico descreve como usar recursos e receitas para melhorar os tempos de instalação inicial e subsequentes do seu jogo para o usuário. Recursos e receitas funcionam em conjunto para definir grupos de conteúdo dentro do jogo base que os usuários podem adicionar e remover durante a instalação inicial e também, mais tarde, a partir do shell. Você também pode usar APIs de runtime para consultar dinamicamente o estado de instalação dos recursos e disparar a adição e a remoção de recursos.

Um recurso é um elemento XML que especifica um atributo de cadeia de caracteres de ID voltado para o desenvolvedor. Ele também especifica o nome de exibição localizável e a imagem voltados para o usuário, para exibição no shell. O recurso especifica uma ou mais marcas. No momento da instalação e da atualização, o sistema encontra todas as marcas referenciadas pelos recursos instalados e instala todos os blocos que contêm essas marcas.

Uma receita é um elemento XML que especifica uma lista de recursos que devem ser instalados. Sempre há uma receita padrão, e os recursos que ela inclui são sempre instalados. Receitas adicionais podem ser definidas. Elas são ativadas no momento da instalação se o usuário ou o console atual tiver um direito a qualquer um dos `StoreIds` especificados, conforme mostrado no código a seguir.

```xml theme={null}
<Recipes>
    <!-- A recipe is always active if it has no child StoreId elements—the name "default" is a convention. -->
    <Recipe Id="default" IncludedFeatures="CampaignFeature;MultiPlayerFeature"/>

    <!-- This recipe is active by default, but only on Xbox Series X hardware.  -->
    <Recipe Id="default-anaconda" IncludedFeatures="HDFeature" Devices="Xbox-Anaconda"/>

    <!-- PremiumProduct recipe is active, which means PremiumFeature installs if user owns 9PXXXXXXXXXX. -->
    <Recipe Id="PremiumProduct" IncludedFeatures="PremiumFeature">
        <StoreId>9PXXXXXXXXXX</StoreId>
    </Recipe>
</Recipes>
<Features>
    <Feature Id="CampaignFeature" DisplayName="ms-resource:CampaignFeatureName" Image="campaignlogo.png" Tags="Campaign1;Campaign2"/>
    <Feature Id="MultiPlayerFeature" DisplayName="ms-resource:MultiPlayerFeatureName" Image="MPlogo.png" Tags="Multiplayer1;Multiplayer2" />
    <Feature Id="HDFeature" DisplayName="ms-resource:HDTexturesFeatureName" Image="HDlogo.png" Tags="hd"/>
    <Feature Id="PremiumFeature" DisplayName="ms-resource:PremiumFeatureName" Image="Premiumlogo.png" Tags="extras"/>
</Features>


<Chunk Id="8000" Tags="Campaign1">
<Chunk Id="8001" Tags="Campaign2">
<!-- This chunk uses the # character, so it's only installed if both the Campaign and HD features are active. -->
<Chunk Id="8001" Tags="Campaign1#hd"> 

<Chunk Id="9000" Tags="Multiplayer1">
<!-- This chunk uses the # character, so it's only installed if both the Multiplayer and HD features are active. -->
<Chunk Id="9001" Tags="Multiplayer1#hd"> 

<!-- This chunk is installed if either the Multiplayer or SinglePlayer features are active. -->
<Chunk Id="10000" Tags="Multiplayer1;Campaign1">
<!-- This chunk is installed if either the (Multiplayer feature and HD feature) or (SinglePlayer feature and HD feature) are active. -->
<Chunk Id="10001" Tags="Multiplayer1#hd;Campaign1#hd">

<Chunk Id="11000" Tags="extras">
<!-- This chunk uses the # character, so it's only installed if both the Premium and HD features are active. -->
<Chunk Id="11001" Tags="extras#hd"> 
```

<Note>Os recursos podem conter mais de um atributo de marca, separados por ponto e vírgula. Um bloco é incluído para instalação se qualquer uma das marcas do bloco for incluída por um recurso ativo. O símbolo `#` instala uma marca se as marcas de ambos os lados do `#` estiverem ativas.</Note>

## Localizar nomes de exibição de recursos

A localização de `DisplayNames` é feita da mesma forma que a localização de atributos de nome no arquivo *MicrosoftGame.config*. Isso é feito usando o formato `ms-resource:name`, junto com os arquivos *.resw* que ficam no diretório de cadeias de caracteres do seu jogo, e as cadeias de caracteres por localidade em subdiretórios nomeados adequadamente. Para obter mais informações, consulte [Localização do MicrosoftGame.Config](/pt-BR/build/core-features/common/game-config/MicrosoftGameConfig-Localization)

<Note>Os valores de cadeia de caracteres localizados e as imagens usados com o MicrosoftGame.config e o Intelligent Delivery não são criptografados nos pacotes publicados, nem em sandboxes de desenvolvedor nem no varejo. Use valores de espaço reservado no seu jogo para o título, os ícones e qualquer conteúdo confidencial. O conteúdo confidencial inclui qualquer conteúdo referenciado pelo Intelligent Delivery durante o desenvolvimento, antes da divulgação pública do seu título, ou conteúdo específico encontrado no seu título.</Note>

## Recursos ocultos

Os recursos são marcados como ocultos, o que impede que os usuários decidam se eles são mostrados como opções selecionáveis no momento da instalação ou ao gerenciar pelo shell depois que seu título for instalado. Tenha cuidado ao usar recursos ocultos, porque a única maneira de adicioná-los ou removê-los é usando APIs dentro do seu título. Quaisquer bugs descobertos no seu título podem resultar em conteúdo inacessível até que você forneça uma atualização de conteúdo para corrigir esses bugs. O código a seguir é um exemplo de um recurso marcado como oculto.

```xml theme={null}
  <Feature Id="HiddenFeature" Hidden="true" Tags="HiddenFeature1" />
```

## Verificar o status de instalação de recursos

Você pode usar recursos para verificar a presença de todos os blocos com marcas especificadas por esse recurso. Ao executar essas consultas em runtime, os especificadores de dispositivo e de idioma são levados em consideração. Se você tiver conteúdo específico de dispositivo ou de idioma no seu recurso, ele ainda retornará `true` desde que um idioma, e todos os blocos aplicáveis ao dispositivo atual dentro desse recurso, estejam instalados.

Por exemplo, se os ativos do recurso Campaign estiverem contidos nos blocos 8000, 8001 e 8002, em vez de chamar o método [XPackageFindChunkAvailability](/pt-BR/reference/system/xpackage/functions/xpackagefindchunkavailability) para determinar se esse conjunto de blocos está totalmente instalado e jogável, você pode marcar os três blocos com a marca personalizada "campaign1" e referenciar "campaign1" no seu recurso Campaign. Em seguida, você pode chamar o método [XPackageFindChunkAvailability](/pt-BR/reference/system/xpackage/functions/xpackagefindchunkavailability) usando o [XPackageChunkSelector](/pt-BR/reference/system/xpackage/structs/xpackagechunkselector) com a ID do recurso Campaign para obter facilmente o status de instalação desse conjunto de dados.

<a id="ID4EHB" />

## Documentação de referência da API

* [XPackage (conteúdo da API)](/pt-BR/reference/system/xpackage/xpackage_members)
  * Funções
    * [XPackageFindChunkAvailability](/pt-BR/reference/system/xpackage/functions/xpackagefindchunkavailability)
    * [XPackageInstallChunks](/pt-BR/reference/system/xpackage/functions/xpackageinstallchunks)
  * Estruturas
    * [XPackageChunkSelector](/pt-BR/reference/system/xpackage/structs/xpackagechunkselector)

## Confira também

[Introdução ao Intelligent Delivery](/pt-BR/build/core-features/common/packaging/overviews/intelligentdelivery)
[XPackageChunkSelector](/pt-BR/reference/system/xpackage/structs/xpackagechunkselector)
[XPackageInstallChunks](/pt-BR/reference/system/xpackage/functions/xpackageinstallchunks)
[Localização do MicrosoftGame.Config](/pt-BR/build/core-features/common/game-config/MicrosoftGameConfig-Localization)


## Related topics

- [Intelligent Delivery](/es/build/core-features/common/packaging/overviews/intelligentdelivery.md)
- [Intelligent Delivery: especificadores de dispositivo](/es/build/core-features/common/packaging/intelligentdelivery-device.md)
- [Instalación por streaming e Intelligent Delivery: información general](/es/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery.md)
- [Intelligent Delivery: características y recetas](/es/build/core-features/common/packaging/intelligentdelivery-features-recipes.md)
- [Intelligent Delivery: especificadores de etiqueta personalizada](/es/build/core-features/common/packaging/intelligentdelivery-custom.md)
