Web PI の拡張性 : カスタム フィード - カスタム製品のインストール

[Kateryna’s Blog Web PI Extensibility: Custom Feeds – Installing Custom Products ]の翻訳です。

他の記事でも説明されていますが、Web Platform Installer (Web PI) の製品の Version 2 RTW では、新しい機能の一部として拡張性が提供されています。ユーザーは、メディアおよび開発ツールのシナリオを、既定では Web PI で提供されない製品のセットと共に追加することができます。新しい製品を Web PI のユーザー インターフェイス (UI) に追加するには、Web PI で解析するための情報を含むカスタム フィードを作成し、フィードによって提供される製品を表示し、インストールできるようにする必要があります。

製品が UI に表示されるようにするには、フィード内で Web PI の新しいタブ、ピラー、および製品エンティティを定義する必要があります。

次の XML は、"SampleProduct" という productId であるサンプル製品を定義しています。このサンプル製品は、製品ファミリによってグループ化され、新しく定義された "Sample Tab" というタブに表示されます。カスタム製品は Web PI のコア タブには追加できないため、カスタム製品用に新しいカスタム タブを定義する必要があります。

 <?xml version="1.0" encoding="utf-8"?>

<feed xmlns="https://www.w3.org/2005/Atom">
<version>1.0.0</version>
<title>Sample Product WebPI v2 RTW Feed</title>
<link href="https://www.contoso.com/SampleProductFeed.xml" />
<updated>2009-9-29T16:30:00Z</updated>
<author>
<name>Sample Product Builder</name>
<uri>https://www.contoso.com</uri>
</author>
<id>https://www.contoso.com/SampleProductFeed.xml</id>

<entry>
<productId>SampleProduct</productId>
<title>Sample Product</title>

<summary>Just summary</summary>
<longSummary>Long summary of SampleProduct</longSummary>
<productFamily>Sample Products</productFamily>

<version>1.0.0</version>
<images>
<icon>c:\SampleProductIcon.png</icon>
</images>
<author>
<name>Sample Product Builder</name>
<uri>https://www.contoso.com</uri>
</author>
<published>2009-9-29T12:30:00Z</published>
    
<!-- WebPI で製品がインストールされていることを認識する方法 -->
<discoveryHint>
<or>
<!-- 1. レジストリを使用 (バージョン値は 1.0.0 である必要がある。バージョンを考慮しない場合は、キーパスにする必要がある) -->
<discoveryHint>
<registry>
<keyPath>HKEY_LOCAL_MACHINE\SOFTWARE\SampleProduct\Sample Product Version 1.0.0</keyPath>
<valueName>Version</valueName>
<valueValue>1.0.0</valueValue>
</registry>
</discoveryHint>
<discoveryHint>
<file>
<!-- 2. ファイルパスを使用。この場所に exe がある場合、WebPI で SampleProduct がインストールされていることを認識できる -->
<filePath>%ProgramFiles%\SampleProduct\SampleProduct.exe</filePath>
</file>
</discoveryHint>
</or>
</discoveryHint>

    <!-- 
         どの製品を最初にインストールする必要があるか。 
         メインの WebProductList ファイルまたはその他の以前に追加された
         フィードで宣言されている製品の ProductId プロパティによって 
         依存関係を定義する 
    -->
<dependency>
<productId>IISManagementConsole</productId>
</dependency>

<!-- IncompatibleSampleProduct 製品が既にインストールされている場合、SampleProduct をインストールできない -->
<incompatibilities>
<incompatibleProduct>
<productId>IncompatibleSampleProduct</productId>
</incompatibleProduct>
</incompatibilities>

    <!-- 
         インストーラーおよびインストーラーのコマンド。ここで、複数のアーキテクチャ、OS、SKU、および言語について
         個別のインストーラーを定義できる
    -->
<installers>
<!-- x86 アーキテクチャのインストーラー -->
<installer>
<!-- インストーラー ID は各 SampleProduct インストーラーで一意である必要がある -->
<id>1</id>

<!-- インストーラーの言語は英語 -->
<languageId>en</languageId>

<architectures>
<x86 />
</architectures>

        <!-- 
             この製品をインストールできる OS および SKU のリスト。サポートされていないすべての OS/SKU では、
             この製品は表示されない 
        -->
<osList>
<os>
<!-- この製品は Vista/Windows Server SP1 以降でサポートされる -->
<minimumVersion>
<osMajorVersion>6</osMajorVersion>
<osMinorVersion>0</osMinorVersion>
<spMajorVersion>0</spMajorVersion>
</minimumVersion>

<!-- SKU のリスト -->
<osTypes>
<Server />
<HomePremium />
<Ultimate />
<Enterprise />
<Business />
</osTypes>
</os>
</osList>

<!-- ユーザーが製品をインストールする前に、次の EULA へのリンクが表示される -->
<eulaURL>https://www.contoso.com/eula.html</eulaURL>

<!-- この情報は、WebPI でダウンロードされたファイルが改ざんされていないことを確認する際に重要である -->
<installerFile>
<!-- KB 単位のサイズ -->
<fileSize>1024</fileSize>
<installerURL>https://www.contoso.com/SampleProduct_x86.msi</installerURL>
<sha1>111222FFF000BBB444555EEEAAA777888999DDDD</sha1>
</installerFile>

<!-- WebPI で製品をインストールする方法 -->
<installCommands>
<msiInstall>
<msi>%InstallerFile%</msi>
</msiInstall>
</installCommands>
</installer>

<!-- x64 アーキテクチャのインストーラー -->
<installer>
<!-- インストーラー ID は各 SampleProduct インストーラーで一意である必要がある -->
<id>2</id>

<!-- インストーラーの言語は英語 -->
<languageId>en</languageId>

<architectures>
<x64 />
</architectures>

<osList>
<os>
<!-- この製品は Vista/Windows Server SP1 以降でサポートされる -->
<minimumVersion>
<osMajorVersion>6</osMajorVersion>
<osMinorVersion>0</osMinorVersion>
<spMajorVersion>0</spMajorVersion>
</minimumVersion>

<!-- SKU のリスト -->
<osTypes>
<Server />
<HomePremium />
<Ultimate />
<Enterprise />
<Business />
</osTypes>
</os>
</osList>

<!-- ユーザーが製品をインストールする前に、次の EULA へのリンクが表示される -->
<eulaURL>https://www.contoso.com/eula.html</eulaURL>

<!-- この情報は、WebPI でダウンロードされたファイルが改ざんされていないことを確認する際に重要である -->
<installerFile>
<!-- KB 単位のサイズ -->
<fileSize>1024</fileSize>
<installerURL>https://www.contoso.com/SampleProduct_64.msi</installerURL>
<sha1>111222FFF000BBB444555EEEAAA777888999DDDD</sha1>
</installerFile>

<!-- WebPI で製品をインストールする方法 -->
<installCommands>
<msiInstall>
<msi>%InstallerFile%</msi>
</msiInstall>
</installCommands>

</installer>
</installers>
</entry>

<!-- SampleProduct を表示するタブを定義する -->
<tabs>
<tab>
<pillarTab>
<id>SampleTab</id>
<name>Sample Tab</name>
<description>My sample tab for my sample product</description>
<pillar>
<id>SampleProduct</id>
<name>Sample Pillar</name>
<description>Install sample product</description>
<groupingId>SampleProductFamilyGrouping</groupingId>
<recommended>
<productId>SampleProduct</productId>
</recommended>
</pillar>
</pillarTab>
</tab>
</tabs>

<groupings>
<grouping>
<id>SampleProductFamilyGrouping</id>
<!-- productFamily 属性に基づいて製品をまとめる -->
<attribute>productFamily</attribute>
<include>
<item>Sample Products</item>
</include>
</grouping>
</groupings>
</feed>

製品のハッシュを取得するには、File Checksum Integrity Verifier (FCIV) と呼ばれる無償のユーティリティを使用し、コマンド プロンプトから fciv.exe -sha <ファイルへのパス> を実行します。

このフィードから Web PI に製品を追加するには、このテキストを xml ファイルとして保存します。次に [オプションの変更] ダイアログ ボックスを開き (メイン ウィンドウの [オプション] リンクをクリック)、テキスト ボックスに xml ファイルの場所を入力し、[フィードの追加] をクリックして、ダイアログ ボックスを閉じます。"Sample Tab" という名前の新しいタブに、製品のグループ (すべて前述の xml で定義される) が表示されます。

次の図は、フィード データが UI でどのように表されるかを詳しく示したものです。最初のスクリーンショットは、Web PI でタブとピラーのフィード要素がどのように解釈されるかを示しています。

画像

タブで productFamily 要素に基づいて製品がどのようにグループ化されているかを確認するには、[カスタマイズ] リンクをクリックします。[Sample Products] グループ ボックスは、サンプル製品が属する productFamily ごとのグループ化を表します。同じ productFamily 要素を持つ他のすべての製品は、同じグループ ボックスにグループ化されます。

画像 

製品の詳細を確認するには、製品のタイトルの横にある小さい "i" のアイコンをクリックします。製品の詳細ページに、製品自体について定義されているすべての詳細が表示されます。サンプル製品をインストールするには、[Install Sample Product] チェック ボックスをオンにし、[インストール] をクリックします。Web PI によって、現在のコンピューターのアーキテクチャおよび現在の UI カルチャの言語 (利用できる場合) に基づいて、インストーラーが選択されます。

画像

このフィードはローカル パス c:\SampleProductIcon.png にあるアイコンを参照しており、フィードは物理的な場所 c:\SampleProduct.xml からも追加されます。通常は、ユーザーがこのコンテンツをどこかでホストし、URL によってコンテンツを参照することになります。これにより、フィードの準備が完了します。このフィードを発行することによって、他のユーザーは Web PI によって製品をインストールできるようになります。ぜひ試してみてください。