次の方法で共有


ブートストラップ パッケージを作成する

セットアップ プログラムは、Windows インストーラー (.msi) ファイルや実行可能プログラムなどの再頒布可能コンポーネントを検出してインストールするように構成できる汎用インストーラーです。 インストーラーはブートストラップとも呼ばれます。 コンポーネントのインストールを管理するためのメタデータを指定する一連の XML マニフェストを使用してプログラミングされます。 ClickOnce の [ 前提条件 ] ダイアログ ボックスに表示される各再頒布可能コンポーネント (前提条件) はブートストラップ パッケージです。 ブートストラップ パッケージは、前提条件のインストール方法を記述するマニフェスト ファイルを含むディレクトリとファイルのグループです。

ブートストラップはまず、前提条件のいずれかが既にインストールされているかどうかを検出します。 前提条件がインストールされていない場合は、まずブートストラップに使用許諾契約書が表示されます。 次に、エンド ユーザーが使用許諾契約書に同意すると、前提条件のインストールが開始されます。 それ以外の場合、すべての前提条件が検出された場合、ブートストラップはアプリケーション インストーラーを起動するだけです。

カスタム ブートストラップ パッケージを作成する

Visual Studio の XML エディターを使用して、ブートストラップ マニフェストを生成できます。 ブートストラップ パッケージの作成例については、「 チュートリアル: プライバシー プロンプトを使用してカスタム ブートストラップを作成する」を参照してください。

ブートストラップ パッケージを作成するには、製品マニフェストを作成し、コンポーネントのローカライズされたバージョンごとにパッケージ マニフェストも作成する必要があります。

  • 製品マニフェスト (product.xml) には、パッケージの言語に依存しないメタデータが含まれています。 これには、再頒布可能コンポーネントのすべてのローカライズされたバージョンに共通のメタデータが含まれます。 このファイルを作成するには、「 方法: 製品マニフェストを作成する」を参照してください。

  • パッケージ マニフェスト (package.xml) には、言語固有のメタデータが含まれています。通常、ローカライズされたエラー メッセージが含まれています。 コンポーネントには、そのコンポーネントのローカライズされたバージョンごとに少なくとも 1 つのパッケージ マニフェストが必要です。 このファイルを作成するには、「 方法: パッケージ マニフェストを作成する」を参照してください。

これらのファイルが作成されたら、カスタム ブートストラップの名前のフォルダーに製品マニフェスト ファイルを配置します。 パッケージ マニフェスト ファイルは、ロケールの名前が付いたフォルダーに格納されます。 たとえば、パッケージ マニフェスト ファイルが英語の再配布用の場合は、en という名前のフォルダーにファイルを配置します。 日本語の場合は ja、ドイツ語の場合は de など、ロケールごとにこのプロセスを繰り返します。 最終的なカスタム ブートストラップ パッケージは、次のフォルダー構造を持つことができます。

CustomBootstrapperPackage
  product.xml
  CustomBootstrapper.msi
  de
    eula.rtf
    package.xml
  en
    eula.rtf
    package.xml
  ja
    eula.rtf
    package.xml

次に、再頒布可能ファイルをブートストラップ フォルダーの場所にコピーします。 詳細については、「 方法: ローカライズされたブートストラップ パッケージを作成する」を参照してください。

*\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages*

又は

*<VS Install Path>\MSBuild\Microsoft\VisualStudio\BootstrapperPackages*

上記の Visual Studio インストール パスの下のパスは、Visual Studio 2019 Update 7 リリース以降で動作します。

ブートストラップ フォルダーの場所は、次のレジストリ キーの Path 値から見つけることもできます。

*HKLM\Software\Microsoft\GenericBootstrapper*

64 ビット システムでは、次のレジストリ キーを使用します。

*HKLM\Software\Wow6432Node\Microsoft\GenericBootstrapper*

各再頒布可能コンポーネントは、パッケージ ディレクトリの下にある独自のサブフォルダーに表示されます。 製品マニフェストと再頒布可能ファイルは、このサブフォルダーに配置する必要があります。 コンポーネント マニフェストとパッケージ マニフェストのローカライズされたバージョンは、カルチャ名に従って名前が付けられたサブフォルダーに配置する必要があります。

これらのファイルがブートストラップ フォルダーにコピーされると、ブートストラップ パッケージが Visual Studio の [ 前提条件 ] ダイアログ ボックスに自動的に表示されます。 カスタム ブートストラップ パッケージが表示されない場合は、[ 前提条件 ] ダイアログ ボックスを閉じてから再度開きます。 詳細については、「 前提条件」ダイアログ ボックスを参照してください。

次の表に、ブートストラップによって自動的に設定されるプロパティを示します。

プロパティ 説明
アプリケーション名 アプリケーションの名前。
プロセッサーアーキテクチャ 実行可能ファイルの対象となるプラットフォームのプロセッサとビット/ワード。 次の値があります。

-インテル
- IA64
- AMD64
VersionNT Windows オペレーティング システムのバージョン番号。 バージョンの構文は Major.Minor.ServicePack です。
VersionMSI インストール中に実行する Windows インストーラー アセンブリ (msi.dll) のバージョン。
AdminUser このプロパティは、ユーザーが管理者特権を持っている場合に設定されます。 値は true または false です。
インストールモード インストール モードは、コンポーネントをインストールする必要がある場所を示します。 次の値があります。

- HomeSite - 前提条件はベンダーの Web サイトからインストールされます。
- SpecificSite - 前提条件は、選択した場所からインストールされます。
- SameSite - 前提条件は、アプリケーションと同じ場所からインストールされます。

再頒布可能パッケージをアプリケーションのインストールから分離する

再頒布可能ファイルがセットアップ プロジェクトに展開されないようにすることができます。 これを行うには、.NET Framework ディレクトリの RedistList フォルダーに再頒布可能リストを作成します。

%ProgramFiles%\Microsoft.NET\RedistList

再頒布可能リストは、次の形式を使用して名前を付けるべき XML ファイルです: <Company Name>.<コンポーネント名>.RedistList.xml. そのため、たとえば、コンポーネントが Acme によって作成された DataWidgets と呼ばれる場合は、Acme.DataWidgets.RedistList.xmlを使用 します 。 再頒布可能リストの内容の例を次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<FileList Redist="Acme.DataWidgets" >
<File AssemblyName="Acme.DataGrid" Version="1.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" Culture="neutral" ProcessorArchitecture="MSIL" InGAC="true" />
</FileList>