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>