Udostępnij za pośrednictwem


Manifest from Resources

Narzędzie Manifest z zasobów to aplikacja konsolowa, która pobiera listę zasobów obrazu (.png lub pliki xaml). Przy użyciu tej listy generuje plik imagemanifest, który umożliwia używanie tych obrazów z usługą obrazów programu Visual Studio. Ponadto to narzędzie może służyć do dodawania obrazów do istniejącego pliku imagemanifest. To narzędzie jest przydatne do dodawania wysokiej rozdzielczości DPI i obsługi motywów obrazów do rozszerzenia programu Visual Studio. Wygenerowany plik imagemanifest powinien zostać uwzględniony i wdrożony jako część rozszerzenia programu Visual Studio (vsix).

Jak korzystać z narzędzia

Składnia

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

Argumenty

Nazwa przełącznika Uwagi Wymagane lub opcjonalne
/zasoby Rozdzielana średnikami lista obrazów lub katalogów. Ta lista powinna zawsze zawierać pełną listę obrazów, które będą znajdować się w manifeście. Jeśli zostanie podana tylko częściowa lista, wpisy, które nie zostały uwzględnione, zostaną utracone.

Jeśli dany plik zasobu jest paskiem obrazu, narzędzie dzieli je na oddzielne obrazy przed dodaniem każdego obrazu podrzędnego do manifestu.

Jeśli obraz jest plikiem .png, zalecamy sformatowanie nazwy w następujący sposób, aby narzędzie może wypełnić odpowiednie atrybuty obrazu: <Nazwa>.<Szerokość>.<Wysokość>.png.
Wymagania
/montaż Nazwa zestawu zarządzanego (bez rozszerzenia) lub ścieżka środowiska uruchomieniowego zestawu natywnego, który hostuje zasoby (względem lokalizacji środowiska uruchomieniowego manifestu). Ponadto jeśli zestaw jest silnie nazwany, ten wpis powinien zawierać wersję zestawu i token klucza publicznego. Wymagania
/manifest Nazwa do nadania wygenerowanemu plikowi imagemanifest. Może to również obejmować ścieżkę bezwzględną lub względną, aby utworzyć plik w innej lokalizacji. Nazwa domyślna jest zgodna z nazwą zestawu. Ponadto w przypadku podawania dodatkowych informacji o silnej nazwie w przełączniku /assembly ten przełącznik powinien być dostarczany z przyjazną dla użytkownika nazwą manifestu, aby informacje o silnej nazwie zestawu nie były uwzględniane w nazwie manifestu.

Ustawienie domyślne: <Current Directory>\<Assembly.imagemanifest>
Opcjonalnie
/guidName Nazwa, która ma być nadana symbolowi GUID dla wszystkich obrazów w wygenerowany manifest.

Ustawienie domyślne: AssetsGuid
Opcjonalnie
/rootPath Ścieżka główna, która musi zostać odłączona przed utworzeniem zarządzanych identyfikatorów URI zasobów. (Ta flaga ma pomóc w przypadkach, w których narzędzie pobiera względną ścieżkę identyfikatora URI źle, co powoduje niepowodzenie ładowania zasobów).

Ustawienie domyślne: <Bieżący katalog>
Opcjonalnie
/Cykliczne Ustawienie tej flagi powoduje, że narzędzie będzie rekursywnie przeszukiwać wszystkie katalogi w argumencie /resources. Pominięcie tej flagi powoduje wyszukiwanie katalogów tylko na najwyższym poziomie. Opcjonalnie
/isNative Ustaw tę flagę, gdy argument zestawu jest ścieżką dla zestawu natywnego. Pomiń tę flagę, gdy argument zestawu jest nazwą zarządzanego zestawu. (Aby uzyskać więcej informacji na temat tej flagi, zobacz sekcję Notatki). Opcjonalnie
/newGuids Ustawienie tej flagi informuje narzędzie o utworzeniu nowej wartości dla symbolu GUID obrazów zamiast scalania go z istniejącego manifestu. Opcjonalnie
/newIds Ustawienie tej flagi informuje narzędzie o utworzeniu nowych wartości symboli identyfikatora dla każdego obrazu zamiast scalania wartości z istniejącego manifestu. Opcjonalnie
/noLogo Ustawienie tej flagi uniemożliwia drukowanie informacji o produktach i prawach autorskich. Opcjonalnie
/? Drukuje informacje pomocy. Opcjonalnie
/help Wyświetla informacje pomocy. Opcjonalnie

Przykłady

  • 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; wersja 1.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

Uwagi

  • Narzędzie obsługuje tylko pliki .png i xaml. Wszystkie inne typy obrazów lub plików są ignorowane. Podczas analizowania zasobów jest generowane ostrzeżenie dla wszystkich nieobsługiwanych typów. Jeśli nie znaleziono obsługiwanych obrazów po zakończeniu analizowania zasobów przez narzędzie, zostanie wygenerowany błąd

  • Po sugerowanym formacie dla obrazów .png narzędzie ustawia wartość rozmiaru/wymiaru dla .png na rozmiar określony w formacie, nawet jeśli różni się od rzeczywistego rozmiaru obrazu.

  • Format szerokości/wysokości można pominąć dla .png obrazów, ale narzędzie odczytuje rzeczywistą szerokość/wysokość obrazu i użyje ich dla wartości rozmiaru/wymiaru obrazu.

  • Uruchomienie tego narzędzia na tym samym pasku obrazu wiele razy dla tego samego pliku imagemanifest spowoduje zduplikowanie wpisów manifestu. Jest to spowodowane tym, że narzędzie próbuje podzielić pasek obrazu na obrazy autonomiczne, a następnie dodać je do istniejącego manifestu.

  • Scalanie (pomijanie /newGuids lub /newIds) powinno odbywać się tylko dla manifestów generowanych przez narzędzie. Manifesty, które są dostosowane lub generowane za pomocą innych środków, mogą nie być poprawnie scalane.

  • Manifesty generowane dla zestawów natywnych mogą wymagać ręcznej edycji po wygenerowaniu, aby symbole identyfikatorów pasowały do identyfikatorów zasobów z pliku rc zestawu natywnego.

Przykładowe dane wyjściowe

Prosty manifest obrazu

Manifest obrazu przypomina ten plik .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>

Manifest obrazu dla paska obrazów

Manifest obrazu dla paska obrazu jest podobny do tego pliku .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>

Manifest obrazu dla zasobów obrazu zestawu natywnego

Manifest obrazu dla obrazów natywnych jest podobny do tego pliku .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>