Manifest from Resources

A ferramenta Manifesto de Recursos é um aplicativo de console que usa uma lista de recursos de imagem (arquivos .png ou .xaml). Usando essa lista, ele gera um arquivo .imagemanifest que permite que essas imagens sejam usadas com o Serviço de Imagem do Visual Studio. Além disso, essa ferramenta pode ser usada para adicionar imagens a um .imagemanifest existente. Essa ferramenta é útil para adicionar suporte a alto DPI e temas para imagens a uma extensão do Visual Studio. O arquivo .imagemanifest gerado deve ser incluído e implantado como parte de uma extensão do Visual Studio (.vsix).

Como usar a ferramenta

Sintaxe

ManifestFromResources /resources:<Dir1>;<img1> /assembly:<AssemblyName><Argumentos opcionais>

Argumentos

Nome do switch Observações Obrigatório ou Opcional
resources/ Uma lista de imagens ou diretórios delimitada por ponto-e-vírgula. Essa lista sempre deve conter a lista completa de imagens que estarão no manifesto. Se apenas for fornecida uma lista parcial, as entradas não incluídas serão perdidas.

Se um determinado arquivo de recurso for uma faixa de imagem, a ferramenta o dividirá em imagens separadas antes de adicionar cada subimagem ao manifesto.

Se a imagem for um arquivo .png, recomendamos que você formate o nome assim para que a ferramenta possa preencher os atributos corretos para a imagem: <Nome>.<Largura>.<Altura>.png.
Obrigatório
/assembléia O nome do assembly gerenciado (não incluindo a extensão) ou o caminho de runtime do assembly nativo que hospeda os recursos (em relação ao local de runtime do manifesto). Além disso, se o assembly tiver um nome forte, essa entrada deverá incluir a versão do assembly e o token de chave pública. Obrigatório
/manifesto O nome a ser dado ao arquivo .imagemanifest gerado. Isso também pode incluir um caminho absoluto ou relativo para criar o arquivo em um local diferente. O nome padrão corresponde ao nome do assembly. Além disso, ao fornecer as informações de nome extra forte na opção /assembly, essa opção deve ser fornecida com um nome de manifesto amigável para que as informações de nome forte do assembly não sejam incluídas no nome do manifesto.

Padrão: <Diretório Atual>\<Assembly.imagemanifest>
Opcional
/guidName O nome a ser dado ao símbolo GUID para todas as imagens no manifesto gerado.

Padrão: AssetsGuid
Opcional
/rootPath O caminho raiz que precisa ser removido antes de criar URIs de recursos gerenciados. (Esse sinalizador é para ajudar nos casos em que a ferramenta obtém o caminho de URI relativo errado, fazendo com que os recursos não sejam carregados.)

Padrão: <Diretório Atual>
Opcional
/recursivo Definir esse sinalizador informa à ferramenta para pesquisar recursivamente todos os diretórios no argumento /resources. Omitir esse sinalizador resulta em uma pesquisa somente de nível superior de diretórios. Opcional
/éNativo Defina esse sinalizador quando o argumento do assembly for um caminho para um assembly nativo. Omita esse sinalizador quando o argumento do assembly for o nome de um assembly gerenciado. (Para obter mais informações sobre esse sinalizador, consulte a seção Anotações.) Opcional
/newGuids Definir esse sinalizador informa à ferramenta para criar um novo valor para o símbolo GUID das imagens em vez de mesclar o do manifesto existente. Opcional
/newIds Definir esse sinalizador informa à ferramenta para criar novos valores de símbolo de ID para cada imagem em vez de mesclar valores do manifesto existente. Opcional
/noLogo A configuração desse sinalizador impede que as informações de produtos e direitos autorais sejam impressas. Opcional
/? Imprime informações de ajuda. Opcional
/help Imprime informações de Ajuda. Opcional

Exemplos

  • ManifestFromResources /resources:D:\Images /assembly:My.Assembly.Name /isNative

  • ManifestFromResources /resources:D:\Images\Image1.png; D:\Images\Image1.xaml /assembly:My.Assembly.Name /manifest:MyImageManifest.imagemanifest

  • ManifestFromResources /resources:D:\Images\Image1.png; D:\Images\Image1.xaml /assembly:My.Assembly.Name; v1.0.0.0; abcdef0123456789 /manifest:MyImageManifest.imagemanifest

  • ManifestFromResources /resources:D:\Images\Image1.png; D:\Images\Image1.xaml /assembly:My.Assembly.Name /guidName:MyImages /newGuids /newIds

Observações

  • A ferramenta só dá suporte a arquivos .png e .xaml. Quaisquer outros tipos de imagem ou arquivo são ignorados. Um aviso é gerado para todos os tipos sem suporte encontrados durante a análise dos recursos. Se nenhuma imagem suportada for encontrada quando a ferramenta terminar de analisar os recursos, um erro será gerado

  • Seguir o formato sugerido para .png imagens faz com que a ferramenta defina o valor de tamanho/dimensão para o .png ao tamanho especificado pelo formato, mesmo que seja diferente do tamanho real da imagem.

  • O formato de largura/altura pode ser omitido para .png imagens, mas a ferramenta lerá a largura/altura real da imagem e os usará para o valor de tamanho/dimensão da imagem.

  • Executar essa ferramenta na mesma faixa de imagem várias vezes para o mesmo .imagemanifest resultará em entradas de manifesto duplicadas. Esse resultado ocorre porque a ferramenta tenta dividir a faixa de imagem em imagens autônomas e, em seguida, adicioná-las ao manifesto existente.

  • A mesclagem (omitindo /newGuids ou /newIds) só deve ser feita para manifestos gerados por ferramentas. Os manifestos personalizados ou gerados por outros meios podem não ser mesclados corretamente.

  • Os manifestos gerados para assemblies nativos podem precisar ser editados manualmente após a geração para fazer com que os símbolos de ID correspondam às IDs de recurso do arquivo .rc do assembly nativo.

Saída de exemplo

Manifesto de imagem simples

Um manifesto de imagem é semelhante a este arquivo .xml:

<?xml version="1.0" encoding="utf-8"?>
<!-- This file was generated by the ManifestFromResources tool.-->
<!-- Version: 14.0.15197 -->
<ImageManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/ImageManifestSchema/2014">
  <Symbols>
    <String Name="Resources" Value="/My.Assembly.Name;Component/Resources/Images" />
    <Guid Name="AssetsGuid" Value="{fb41b7ef-6587-480c-aa27-5b559d42cfc9}" />
    <ID Name="MyImage" Value="0" />
  </Symbols>
  <Images>
    <Image Guid="$(AssetsGuid)" ID="$(MyImage)">
      <Source Uri="$(Resources)/Xaml/MyImage.xaml" />
      <Source Uri="$(Resources)/Png/MyImage.16.16.png">
        <Size Value="16" />
      </Source>
    </Image>
  </Images>
  <ImageLists />
</ImageManifest>

Manifesto de imagem para uma faixa de imagem

Um manifesto de imagem para uma faixa de imagem é semelhante a este arquivo .xml:

<?xml version="1.0" encoding="utf-8"?>
<!-- This file was generated by the ManifestFromResources tool.-->
<!-- Version: 14.0.15197 -->
<ImageManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/ImageManifestSchema/2014">
  <Symbols>
    <String Name="Resources" Value="/My.Assembly.Name;Component/Resources/ImageStrip" />
    <Guid Name="AssetsGuid" Value="{fb41b7ef-6587-480c-aa27-5b559d42cfc9}" />
    <ID Name="MyImageStrip_0" Value="1" />
    <ID Name="MyImageStrip_1" Value="2" />
    <ID Name="MyImageStrip" Value="3" />
  </Symbols>
  <Images>
    <Image Guid="$(AssetsGuid)" ID="$(MyImageStrip_0)">
      <Source Uri="$(Resources)/MyImageStrip_0.png">
        <Size Value="16" />
      </Source>
    </Image>
    <Image Guid="$(AssetsGuid)" ID="$(MyImageStrip_1)">
      <Source Uri="$(Resources)/MyImageStrip_1.png">
        <Size Value="16" />
      </Source>
    </Image>
  </Images>
  <ImageLists>
    <ImageList Guid="$(AssetsGuid)" ID="$(MyImageStrip)">
      <ContainedImage Guid="$(AssetsGuid)" ID="$(MyImageStrip_0)" />
      <ContainedImage Guid="$(AssetsGuid)" ID="$(MyImageStrip_1)" />
    </ImageList>
  </ImageLists>
</ImageManifest>

Manifesto de imagem para recursos de imagem de assembly nativos

Um manifesto de imagem para imagens nativas é semelhante a este arquivo .xml:

<?xml version="1.0" encoding="utf-8"?>
<!-- This file was generated by the ManifestFromResources tool.-->
<!-- Version: 14.0.15198 -->
<ImageManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/ImageManifestSchema/2014">
  <Symbols>
    <String Name="Resources" Value="..\Assembly\Folder\My.Assembly.Name" />
    <Guid Name="AssetsGuid" Value="{442d8739-efde-46a4-8f29-e3a1e5e7f8b4}" />
    <ID Name="MyImage1" Value="0" />
    <ID Name="MyImage2" Value="1" />
  </Symbols>
  <Images>
    <Image Guid="$(AssetsGuid)" ID="$(MyImage1)">
      <Source Uri="$(Resources)">
        <Size Value="16" />
        <NativeResource ID="$(MyImage1)" Type="PNG" />
      </Source>
    </Image>
    <Image Guid="$(AssetsGuid)" ID="$(MyImage2)">
      <Source Uri="$(Resources)">
        <Size Value="16" />
        <NativeResource ID="$(MyImage2)" Type="PNG" />
      </Source>
    </Image>
  </Images>
  <ImageLists />
</ImageManifest>