Manifest from Resources
La herramienta Manifiesto de recursos es una aplicación de consola que toma una lista de recursos de imagen (.png o archivos .xaml). Con esa lista, genera un archivo .imagemanifest que permite usar esas imágenes con el servicio de imágenes de Visual Studio. Además, esta herramienta se puede usar para agregar imágenes a un .imagemanifest existente. Esta herramienta es útil para agregar compatibilidad con valores altos de PPP y compatibilidad con temas para imágenes en una extensión de Visual Studio. El archivo .imagemanifest generado debe incluirse en e implementarse como parte de una extensión de Visual Studio (.vsix).
Uso de la herramienta
Sintaxis
ManifestFromResources /resources:<Dir1>;<Img1> /assembly:<AssemblyName><Opcional Args>
Argumentos
Nombre del modificador | Notas | Obligatorio o opcional |
---|---|---|
resources/ | Lista delimitada por punto y coma de imágenes o directorios. Esta lista siempre debe contener la lista completa de imágenes que estarán en el manifiesto. Si solo se da una lista parcial, las entradas no incluidas se perderán. Si un archivo de recursos determinado es una franja de imágenes, la herramienta la divide en imágenes independientes antes de agregar cada subimage al manifiesto. Si la imagen es un archivo .png, se recomienda dar formato al nombre como este para que la herramienta pueda rellenar los atributos correctos de la imagen: <Name>.<Ancho>.<Alto>.png. |
Obligatorio |
/ensamblaje | Nombre del ensamblado administrado (sin incluir la extensión) o la ruta de acceso en tiempo de ejecución del ensamblado nativo que hospeda los recursos (en relación con la ubicación en tiempo de ejecución del manifiesto). Además, si el ensamblado tiene un nombre seguro, esta entrada debe incluir la versión del ensamblado y el token de clave pública. | Obligatorio |
/manifiesto | Nombre que se va a asignar al archivo .imagemanifest generado. Esto también puede incluir una ruta de acceso absoluta o relativa para crear el archivo en una ubicación diferente. El nombre predeterminado coincide con el nombre del ensamblado. Además, al proporcionar la información adicional de nombre seguro en el modificador /assembly, este modificador debe proporcionarse con un nombre de manifiesto descriptivo para que la información del nombre seguro del ensamblado no se incluya en el nombre del manifiesto. Valor predeterminado: <Directorio> actual\<Assembly.imagemanifest> |
Opcionales |
/guidName | Nombre que se va a asignar al símbolo GUID para todas las imágenes del manifiesto generado. Valor predeterminado: AssetsGuid |
Opcionales |
/rootPath | Ruta de acceso raíz que debe quitarse antes de crear URI de recursos administrados. (Esta marca es para ayudar con los casos en los que la herramienta obtiene la ruta de acceso de URI relativa incorrecta, lo que provoca que los recursos no se carguen). Valor predeterminado: <Directorio actual> |
Opcionales |
/recursivo | Al establecer esta marca, se indica a la herramienta que busque de forma recursiva los directorios en el argumento /resources. Si se omite esta marca, se produce una búsqueda de solo nivel superior de directorios. | Opcionales |
/isNative | Establezca esta marca cuando el argumento de ensamblado sea una ruta de acceso para un ensamblado nativo. Omita esta marca cuando el argumento de ensamblado sea el nombre de un ensamblado administrado. (Para obtener más información sobre esta marca, vea la sección Notas). | Opcionales |
/newGuids | Al establecer esta marca, se indica a la herramienta que cree un nuevo valor para el símbolo GUID de las imágenes en lugar de combinar el del manifiesto existente. | Opcionales |
/newIds | Establecer esta marca indica a la herramienta que cree nuevos valores de símbolos de identificador para cada imagen en lugar de combinar valores del manifiesto existente. | Opcionales |
/noLogo | Al establecer esta marca, se detiene la impresión de la información de los productos y los derechos de autor. | Opcionales |
/? | Imprime información de ayuda. | Opcionales |
/help | Imprime la información de ayuda. | Opcionales |
Ejemplos
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
Notas
La herramienta solo admite archivos .png y .xaml. Se omite cualquier otro tipo de imagen o archivo. Se genera una advertencia para todos los tipos no admitidos detectados al analizar los recursos. Si no se encuentran imágenes admitidas cuando la herramienta termina de analizar los recursos, se genera un error.
Después del formato sugerido para .png imágenes, la herramienta establece el valor de tamaño y dimensión del .png en el tamaño especificado con formato, incluso si difiere del tamaño real de la imagen.
El formato de ancho y alto se puede omitir para las imágenes de .png, pero la herramienta leerá el ancho o alto reales de la imagen y los usará para el valor de tamaño o dimensión de la imagen.
Al ejecutar esta herramienta en la misma franja de imágenes varias veces para el mismo .imagemanifest, se producirán entradas de manifiesto duplicadas. Este resultado se debe a que la herramienta intenta dividir la franja de imágenes en imágenes independientes y, a continuación, las agrega al manifiesto existente.
La combinación (omitiendo /newGuids o /newIds) solo debe realizarse para manifiestos generados por herramientas. Es posible que los manifiestos personalizados o generados a través de otros medios no se combinen correctamente.
Es posible que los manifiestos generados para ensamblados nativos deban editarse manualmente después de la generación para que los símbolos de identificador coincidan con los identificadores de recursos del archivo .rc del ensamblado nativo.
Salida de ejemplo
Manifiesto de imagen simple
Un manifiesto de imagen es similar a este archivo .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>
Manifiesto de imagen para una franja de imágenes
Un manifiesto de imagen para una franja de imágenes es similar a este archivo .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>
Manifiesto de imagen para recursos nativos de imágenes de ensamblado
Un manifiesto de imagen para imágenes nativas es similar a este archivo .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>