Windows インストーラーとロゴの要件

Certified for Microsoft Windows ロゴは、Windows のアプリケーション仕様に準拠していることが、独立したテストで確認された製品であることを示します。 この仕様は、お客様や他の開発者との協力のもとで Microsoft によって開発され、信頼性が高く管理しやすいアプリケーションを構築するためのロードマップを示します。 この仕様を満たしたソフトウェア ベンダーは、Certified for Microsoft Windows ロゴを使用する資格を与えられ、製品パッケージ、広告、付帯品などのマーケティング資材でそのロゴを使用するライセンスを獲得します。

アプリケーションに対する Windows Vista、Windows XP、Windows Server 2008 の認定の詳細については、Microsoft Partner Network に関する記事を参照してください。

アプリケーションのインストール パッケージを作成する場合、Microsoft Windows インストーラーの機能を利用すると、認定のいくつかの要件を満足できる場合があります。 次の表に、一部の認定要件に関連する Windows インストーラーのドキュメントに含まれる情報へのリンクを示します。 アプリケーション仕様に記述されている認定の要件がすべて Windows インストーラーに依存しているわけではないのでご注意ください。

認定の要件 次のセクションを参照
1.1 アプリケーションは主要な機能を実行し、安定性を維持する必要があります。
インストール パッケージを提供する場合、アプリケーションでは、すべての 32 ビット Windows プラットフォームで使用可能なインストーラー サービスを使用できます。 インストーラーを使用すると、アプリケーションの機能と安定性を向上できます。 「回復性」と「Windows インストーラーの概要」を参照してください
Windows インストーラーのドキュメントのロードマップ
1.3 アプリケーションは、長いファイル名と UNC パスをサポートしている必要があります
インストーラーは、UNC とドライブの両方のネットワークとの間でのインストールをサポートし、SHORTFILENAMES プロパティが設定されている場合、またはターゲット ボリュームが長いファイル名をサポートしていない場合を除き、常にパッケージに指定された長いファイル名を使用します。 「Filename」、「File テーブル」、「Directory テーブル」、「SHORTFILENAMES プロパティ」を参照してください。
1.5 アプリケーションは、Win.ini、System.ini、Autoexec.bat、Config.sys に対する読み取りと書き込みを行ってはなりません。
インストール プログラムでは、エントリを、Win.ini、System.ini、Autoexec.bat、Config.sys "ではなく" レジストリに追加する必要があります。 Windows インストーラーは、レジストリ内の情報キーをサポートしています。 アプリケーションでインストーラーを使用すると、これらのレジストリ キーがインストーラーのプロパティとして使用できるようになります。 これらのキーの値を簡単に確認および設定できる、アプリケーションに合ったパッケージを作成できます。 アプリケーションで使用する情報をレジストリに格納しない場合は、プライベート初期化ファイルを作成して、アプリケーションの実行可能ファイルを含むディレクトリに挿入します。 Windows インストーラーを使用してアプリケーションをインストールすると、プライベート .ini ファイルのインストールの管理と、既存の.ini ファイルでの情報の追加や削除を簡単に実行できます。 「レジストリの変更」、「Registry テーブル グループ」、「Registry テーブル」、「RemoveRegistry テーブル」、「WriteRegistryValues アクション」、「RemoveRegistryValues アクション」、Uninstall レジストリ キーに関する記事、「プロパティ」、「File テーブル」、「Directory テーブル」、「Directory テーブルの使用」、「IniFile テーブル」、「RemoveIniFile テーブル」、「IniLocator テーブル」、「WriteIniValues アクション」、「RemoveIniValues アクション」、「RemoveIniFile テーブル」を参照してください。
1.7 アプリケーションは、Windows バージョン チェックを正しく実行する必要があります。
アプリケーションのインストール パッケージを準備するときは、製品のオペレーティング システムのバージョン要件に関する情報を含める必要があります。 初期化時に、インストーラーで自動的に、特定のプロパティが現在のオペレーティング システムのバージョンに設定されます。 これらのインストーラー プロパティを使用すると、セットアップ プログラムによるバージョン チェックが簡単になります。 「プロパティ」、「Version9X プロパティ」、「VersionDatabase プロパティ」、「VersionNT プロパティ」、「WindowsBuild プロパティ」、「ProductCode プロパティ」、「ProductName プロパティ」、「ProductVersion プロパティ」、「概要情報ストリーム」、「Revision Number Summary プロパティ」を参照してください。
2.1 アプリケーションは、検証テストに合格した Windows インストーラー パッケージを使用してインストールする必要があります。
インストール パッケージが検証テストに合格していることを確認するには、内部整合性エバリュエーター - ICE と呼ばれる特定の検証規則セットを使用します。 これらの ICE は、Logo.cub ファイルに含まれています。 認定の資格を得るには、これらの規則を使用した検証時に、インストール パッケージでエラーが生じてはなりません。 警告は許容されますが、通常は修正する必要があります。 Windows インストーラー SDK には、Logo.cub、Darice.cub、Mergemod.cub ファイルが含まれています。 Logo.cub ファイルの ICE は、Darice.cub ファイルに含まれています。 パッケージが Darice.cub を使用した検証に合格すると、Logo.cub で合格することになります。 詳細については、「パッケージの検証」を参照してください。
2.2 アプリケーションのインストールに使用されるインストール パッケージは、コンポーネントを作成するための規則に従う必要があります。
インストーラー コンポーネントは、常に 1 つのまとまりとしてインストールまたは削除されるアプリケーションの部分です。 アプリケーションをコンポーネントに分割する最適な方法を決定できるように、一連の規則が用意されています。 インストール パッケージ内のコンポーネントが正しく定義されていれば、インストーラーで、それらのコンポーネントを安全にインストールおよび削除できます。 「アプリケーションをコンポーネントに整理する」、「コンポーネントと機能」、「コンポーネント コードの変更」、「コンポーネント ルールが壊れている場合はどうなりますか。」、「機能とコンポーネントの操作」、「Component テーブル」を参照してください。
2.3 アプリケーションのインストール パッケージは、共有コンポーネントを識別する必要があります。
アプリケーションをコンポーネントに適切に整理しているインストール パッケージを用意していて、Component テーブルで msidbComponentAttributesSharedDllRefCount を設定している場合、Windows インストーラーでは、コンポーネントのキー ファイルの共有 DLL レジストリの参照カウントを使用して共有コンポーネントを追跡できます。 インストーラーを使用しない場合、アプリケーションでは SharedDLLs レジストリ キー内の DLL の使用カウンターを増分して、共有 DLL の使用を追跡する必要があります。 詳細については、「Directory テーブル」、「Directory テーブルの使用」、「Component テーブル」を参照してください。 SharedDllRefCount ビットの詳細については、「Component テーブル」、「アプリケーションをコンポーネントに整理する」を参照してください。
2.4 既定では、アプリケーションを Program Files フォルダーにインストールする必要があります。
インストーラーでは、初期化時にプロパティを Program Files フォルダーの完全パスに設定します。 インストール パッケージを準備するときに、既定でインストーラーによってこのフォルダーにアプリケーションをインストールするように指定できます。 パッケージに UI も含める場合、インストーラーで、別のインストール場所を選択できます。 詳細については、「Directory テーブル」、「Directory テーブルの使用」、「TARGETDIR プロパティ」、MsiSetTargetPath に関する記事、「プロパティ」、「ProgramFilesFolder プロパティ」を参照してください。
2.5 アプリケーションでプログラム ファイルの追加と削除が適切にサポートされている必要があります。
アプリケーションの Windows インストーラー パッケージ内の特定のインストーラー プロパティの値を設定すると、コントロール パネルの [プログラムの追加と削除] に必要なすべての情報を入力できます。 これらのプロパティを設定すると、対応する値が自動的にレジストリに書き込まれます。 「プロパティ」、「必須プロパティ」、「ProductName プロパティ」、「ARPINSTALLLOCATION プロパティ」、「Manufacturer プロパティ」、「ProductVersion プロパティ」を参照してください。
2.6 アプリケーションで、Windows インストーラー パッケージが公開通知をサポートするようにする必要があります。
公開通知をサポートするには、アプリケーションを公開通知用に整理し、公開通知に必要なすべての情報をアプリケーションの Windows インストーラー パッケージに含めます。 詳細については、「公開通知」、「Installation-On-Demand」、「製品、機能、コンポーネントの公開」、「プラットフォームでの公開通知のサポート」、「コンポーネントと機能」、「推奨される AdvtExecuteSequence」、「推奨される AdvtUISequence」、「Advertise プロパティ」、「Advertise アクション」、「PublishProduct アクション」、「Feature テーブル、「Shortcut テーブル」、「Class テーブル」、「Extension テーブル」、「Icon テーブル」、「MIME テーブル」、「ProgId テーブル」、「TypeLib テーブル」、「Verb テーブル」、MsiConfigureFeature に関する記事、MsiConfigureProduct に関する記事を参照してください。
2.7 アプリケーションのインストール パッケージでは、アンインストール サポートを正しく行う必要があります。
インストーラーを使用してアプリケーションをインストールする場合、別個のアンインストーラーを作成する必要はありません。 インストーラーを使ってアプリケーションをインストール、アンインストール、修復できるインストール パッケージを作成できます。 「Windows インストーラーの概要」、「アプリケーションをコンポーネントに整理する」、「標準アクション」、「標準アクションについて」、「標準アクションの使用」、「標準アクション リファレンス」、「アプリケーションのインストール」、MsiInstallProduct に関する記事、「INSTALL アクション」を参照してください。
3.1 Windows 2000 では、Windows ファイル保護によって保護されているファイルを置き換えようとしないでください。
Windows インストーラーは、Windows 2000 に重要なシステム ファイルをインストールする際に、Windows ファイル保護 (WFP) に従います。 Windows インストーラーで、保護されたファイルのインストールや置換が試みられることはありません。 保護されたシステム ファイルがアプリケーションの無人インストールによって変更された場合、WFP で、そのファイルが検証済みのファイル バージョンに復元されます。 詳細については、「Windows インストーラーと Windows Resource Protection の使用」を参照してください。
3.2 新しい再頒布可能コンポーネントを記述する作成者は、コンポーネントをアプリケーション ディレクトリにインストールできるように、サイドバイサイド共有手法を使用する必要があります。
Windows インストーラー パッケージの作成者は、インストーラーでアプリケーションの共有ファイル (一般的には共有 DLL) が共有の場所ではなくアプリケーションのフォルダーにコピーされるように指定できます。 これで、このプライベート ファイル セットは、そのアプリケーションによってのみ使用されます。 「分離されたコンポーネント」を参照してください。
3.3 Windows 2000 および Windows 98 Second Edition の場合、アプリケーションが依存するすべてのサイドバイサイド DLL をアプリケーション ディレクトリにインストールする必要があります。
Windows インストーラー パッケージの作成者は、インストーラーでアプリケーションの共有ファイル (一般的には共有 DLL) が共有の場所ではなくアプリケーションのフォルダーにコピーされるように指定できます。 これで、このプライベート ファイル セットは、そのアプリケーションによってのみ使用されます。 「分離されたコンポーネント」または「分離されたコンポーネントのインストール」を参照してください。
4.3 アクセスが拒否された場合、アプリケーションを適切に機能低下状態にする必要があります。
この要件の目的は、ユーザーがリソースへのアクセスを拒否された場合、セキュリティで保護された環境を維持できる方法でアプリケーションが失敗するようにすることです。 Windows インストーラーでは、インストール時にのみ特権を処理します。 アプリケーションでは、特権を実行時に処理する必要があります。 インストーラーでは、初期化時に特定のプロパティをユーザーの特権レベルまたはシステム ポリシーで指定されたレベルに設定できます。 その後、インストールを開始する前にインストーラーでユーザーのアクセス特権が確認されるように、Windows インストーラー パッケージを作成できます。
インストール パッケージは、十分なディスク領域があるかどうかがインストーラーで確認されるように作成できます。 アプリケーションのパッケージのユーザー インターフェイス (UI) を作成する場合、ディスク領域が不足しているユーザーに対してオプションを表示できます。
インストールが失敗した場合、インストーラーではロールバック モードに切り替えて、コンピューターの元の状態を自動的に復元できます。
詳細については、「Windows インストーラーの概要」、「回復性」、「ソースの回復性」、「Privileged プロパティ」、「AdminUser プロパティ」、「システム ポリシー」、「InstallValidate アクション」、「ファイルのコスト処理」、「DiskCost ダイアログ」、「OutOfDiskSpace プロパティ」、「OutOfNoRbDiskSpace プロパティ」、「AllocateRegistrySpace アクション」、「VolumeCostList コントロール」、ロールバックに関する記事、「インストール メカニズム」、「PROMPTROLLBACKCOST プロパティ」、「DISABLEROLLBACK プロパティ」、「EnableRollback ControlEvent」を参照してください。
4.5 アプリケーションは、システム レベルのグループ ポリシー設定に従う必要があります。
Windows インストーラーは、インストールに関連するポリシーに従うことができます。 詳細については、「システム ポリシー」を参照してください。
7.1 アプリケーションは、Microsoft Windows 2000 Professional にアップグレードした後も、再インストールせずに引き続き機能する必要があります
インストーラーには、Windows 2000 への移行のためのアプリケーションの準備を容易にできるコンポーネント属性があります。 詳細については、「推移的なコンポーネントの使用」を参照してください。