來自資源的資訊清單
[來自資源] 工具的指令清單是一種控制台應用程式,會取得映射資源清單(.png或 .xaml 檔案)。 使用該清單,它會產生一個 .imagemanifest 檔案,允許這些映像與 Visual Studio Image Service 搭配使用。 此外,此工具可用來將影像新增至現有的 .imagemanifest。 此工具適用於將高 DPI 和影像主題支援新增至 Visual Studio 延伸模組。 產生的 .imagemanifest 檔案應該包含在Visual Studio 擴展名中,並部署為Visual Studio 擴展名的一部分。vsix。
如何使用工具
語法
ManifestFromResources /resources:<Dir1>;<Img1> /assembly:<AssemblyName><選用 Args>
引數
切換名稱 | 注意事項 | 必要或選擇性 |
---|---|---|
/資源 | 以分號分隔的影像或目錄清單。 此清單應該一律包含將在指令清單中的完整映像清單。 如果只指定部分清單,則未包含的專案將會遺失。 如果指定的資源檔是影像等量,工具會將它分割成個別的影像,再將每個子影像新增至指令清單。 如果影像是.png檔案,建議您將名稱格式化如下,讓工具可以填入影像的正確屬性: <名稱>。<寬度>。<高度>.png。 |
必要 |
/集會 | Managed 元件的名稱(不包括延伸模組),或裝載資源的原生元件運行時間路徑(相對於指令清單的運行時間位置)。 此外,如果元件具有強名稱,則此項目應該包含元件版本和公鑰令牌。 | 必要 |
/清單 | 要提供給所產生 .imagemanifest 檔案的名稱。 這也可以包含絕對路徑或相對路徑,以在不同的位置建立檔案。 預設名稱符合元件名稱。 此外,在 /assembly 參數中提供額外的強名稱資訊時,應該提供這個參數的使用者易記指令清單名稱,讓元件強名稱資訊不包含在指令清單名稱中。 默認值:<Current Directory>\<Assembly.imagemanifest> |
選擇性 |
/guidName | 要提供給所產生指令清單中所有影像之 GUID 符號的名稱。 默認值:AssetsGuid |
選擇性 |
/rootPath | 建立受控資源 URI 之前,必須先移除的根路徑。 (此旗標可協助解決工具取得相對 URI 路徑錯誤的情況,導致資源無法載入。 預設值: <目前目錄> |
選擇性 |
/遞迴的 | 設定此旗標會指示工具以遞歸方式搜尋 /resources 自變數中的任何目錄。 省略此旗標會導致目錄的最上層搜尋。 | 選擇性 |
/isNative | 當元件自變數是原生元件的路徑時,請設定此旗標。 當元件自變數是Managed元件的名稱時,請省略此旗標。 (如需此旗標的詳細資訊,請參閱 Notes 一節。 | 選擇性 |
/newGuids | 設定此旗標會告知工具為影像的 GUID 符號建立新值,而不是從現有的指令清單合併該符號。 | 選擇性 |
/newIds | 設定此旗標會指示工具為每個影像建立新的標識符符號值,而不是從現有的指令清單合併值。 | 選擇性 |
/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) 應該只針對工具產生的指令清單完成。 透過其他方式自定義或產生的指令清單可能無法正確合併。
產生之後,可能需要手動編輯針對原生元件產生的指令清單,才能讓標識符符號符合原生元件 .rc 檔案中的資源識別符。
範例輸出
簡單映像指令清單
映射指令清單類似於此.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>