リソースからのマニフェスト

Manifest from Resources ツールは、イメージ リソース (.png または .xaml ファイル) の一覧を取得するコンソール アプリケーションです。 この一覧を使用すると、Visual Studio Image Service でそれらのイメージを使用できる .imagemanifest ファイルが生成されます。 また、このツールを使用して、既存の .imagemanifest にイメージを追加することもできます。 このツールは、イメージの高 DPI およびテーマ適用のサポートを Visual Studio 拡張機能に追加する場合に役立ちます。 生成された .imagemanifest ファイルは、Visual Studio 拡張機能 (.vsix) の一部に含められ、一部としてデプロイされる必要があります。

ツールの使用方法

構文

ManifestFromResources /resources:<Dir1>;<Img1> /assembly:<AssemblyName><Optional Args>

引数

スイッチ名 ノート 必須/省略可能
/resources セミコロンで区切られた、画像またはディレクトリの一覧。 この一覧には、マニフェストに存在する画像の完全な一覧を常に含める必要があります。 部分的な一覧だけが与えられた場合、含まれないエントリは失われます。

特定のリソース ファイルがイメージ ストリップの場合、ツールはマニフェストに各サブイメージを追加する前に、それを個別のイメージに分割します。

画像が .png ファイルである場合は、画像の適切な属性をツールで入力できるように、<名前>.<幅>.<高さ>.png のように名前の書式を設定することをお勧めします。
必須
/assembly マネージド アセンブリの名前 (拡張子を含まない)、またはリソースをホストするネイティブ アセンブリのランタイム パス (マニフェストのランタイムの場所を基準とする)。 さらに、アセンブリに厳密な名前が付けられている場合、このエントリにはアセンブリのバージョンと公開キー トークンが含まれている必要があります。 必須
/manifest 生成された .imagemanifest ファイルに付ける名前。 これには、別の場所でファイルを作成するための絶対または相対パスも含めることができます。 既定の名前がアセンブリ名に一致します。 さらに、/assembly スイッチで追加の厳密な名前情報を指定する場合は、アセンブリの厳密な名前情報がマニフェスト名に含まれていないように、このスイッチにわかりやすいマニフェスト名を指定する必要があります。

既定: <在のディレクトリ>\<Assembly.imagemanifest>
省略可能
/guidName 生成されたマニフェスト内のすべての画像の GUID シンボルに付ける名前。

既定値: AssetsGuid
省略可能
/rootPath 管理対象リソース URI の作成前に削除する必要のあるルート パス。 (このフラグは、ツールが相対的な URI パスを間違えたためにリソースの読み込みが失敗する場合に役立てるためのものです)。

既定: <現在のディレクトリ>
省略可能
/recursive このフラグを設定すると、/resources 引数内のディレクトリを再帰的に検索するようにツールに指示します。 このフラグを省略すると、最上位レベルのみのディレクトリ検索が行われます。 省略可能
/isNative アセンブリ引数がネイティブ アセンブリのパスであるときにこのフラグを設定します。 アセンブリ引数がマネージド アセンブリの名前であるときにこのフラグを省略します。 (このフラグの詳細については、「ノート」セクションを参照してください)。 省略可能
/newGuids このフラグを設定すると、既存のマニフェストからの値をマージするのではなく、画像の GUID シンボルの新しい値を作成するようにツールに指示します。 省略可能
/newIds このフラグを設定すると、既存のマニフェストからの値をマージするのではなく、すべての画像に対して新しい ID シンボル値を作成するようにツールに指示します。 省略可能
/noLogo このフラグを設定すると、製品および著作権情報は出力されなくなります。 省略可能
/? ヘルプ情報を出力します。 省略可能
/help ヘルプ情報を出力します。 省略可能

使用例

  • 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

メモ

  • このツールでは、.png ファイルと .xaml ファイルのみがサポートされます。 その他のイメージまたはファイルの種類は無視されます。 リソースの解析中に見つかったサポート対象外のすべての種類に対して警告が生成されます。 ツールによるリソースの解析が完了したときにサポートされているイメージが見つからない場合は、エラーが生成されます

  • .png画像の推奨形式に従うと、ツールは、画像の実際のサイズと異なる場合でも、.pngのサイズ/ディメンション値を指定したサイズに設定します。

  • .png 画像では幅/高さの形式を無視できますが、ツールでは、画像の実際の幅/高さを読み込んで、画像のサイズ/寸法値としてそれらを使用します。

  • 同じ .imagemanifest に対して同じイメージ ストリップでこのツールを複数回実行すると、マニフェスト エントリが重複します。 この結果は、ツールがイメージ ストリップをスタンドアロン イメージに分割し、それらを既存のマニフェストに追加しようとするからです。

  • マージ (/newGuids または /newIds を省略) は、ツールで生成されたマニフェストに対してのみ行ってください。 他の方法でカスタマイズまたは生成されたマニフェストは、正しくマージされない可能性があります。

  • ネイティブ アセンブリ用に生成されたマニフェストは、生成後に手動で編集して、ID シンボルをネイティブ アセンブリの .rc ファイルのリソース ID と一致させる必要がある場合があります。

出力例

単純な画像マニフェスト

イメージ マニフェストは、次の.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>

画像ストリップの画像マニフェスト

イメージ ストリップのイメージ マニフェストは、次の.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>

ネイティブ アセンブリ画像リソースの画像マニフェスト

ネイティブ イメージのイメージ マニフェストは、次の.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>