次の方法で共有


<InstallChecks> 要素 (ClickOnce ブートストラップ)

更新 : 2007 年 11 月

InstallChecks 要素は、ClickOnce アプリケーションのための適切な必須コンポーネントがローカル コンピュータにインストール済みであるかどうかを確認する各種テストの起動をサポートします。

<InstallChecks>
    <AssemblyCheck 
        Property
        Name
        PublicKeyToken
        Version
        Language
        ProcessorArchitecture
    />
    <RegistryCheck
        Property
        Key
        Value
    />
    <ExternalCheck 
        PackageFile
        Property
        Arguments
    />
    <FileCheck 
        Property
        FileName
        SearchPath
        SpecialFolder
        SearchDepth
    />
    <MsiProductCheck 
        Property
        Product
        Feature
    />
    <RegistryFileCheck 
        Property
        Key
        Value
        File
        SearchDepth
    />
</InstallChecks>

AssemblyCheck

この要素は、InstallChecks の子要素で、省略可能です。ブートストラップは、AssemblyCheck の各インスタンスについて、この要素で指定されたアセンブリがグローバル アセンブリ キャッシュ (GAC) に存在するかどうかを確認します。要素はなく、次の属性を持ちます。

属性

説明

Property

必ず指定します。結果を格納するプロパティの名前です。このプロパティは InstallConditions 要素に従って行われるテストから参照できます。この要素は、Command 要素の子です。詳細については、「<Commands> 要素 (ClickOnce ブートストラップ)」を参照してください。

Name

必ず指定します。チェック対象のアセンブリの完全修飾名です。

PublicKeyToken

必ず指定します。この厳密な名前を持つアセンブリに関連付けられている公開キーの省略形です。GAC に格納するアセンブリには、名前、バージョン、および公開キーが必要です。

Version

必ず指定します。アセンブリのバージョンです。

バージョン番号の形式は、<major version>.<minor version>.<build version>.<revision version> です。

Language

省略できます。ローカライズ済みアセンブリの言語です。既定値は neutral です。

ProcessorArchitecture

省略できます。このインストールの対象のコンピュータ プロセッサです。既定値は msil です。

ExternalCheck

この要素は、InstallChecks の子要素で、省略可能です。ブートストラップでは、ExternalCheck のインスタンスごとに、指定された外部プログラムを別々のプロセスで実行し、その終了コードを Property で指定されたプロパティに格納します。複雑な依存関係のチェック処理を実装する場合や、コンポーネントが存在するかどうかを確認するためにコンポーネントをインストールするしか方法がない場合には、ExternalCheck が便利です。

ExternalCheck に要素はなく、次の属性を持ちます。

属性

説明

Property

必ず指定します。結果を格納するプロパティの名前です。このプロパティは InstallConditions 要素に従って行われるテストから参照できます。この要素は、Command 要素の子です。詳細については、「<Commands> 要素 (ClickOnce ブートストラップ)」を参照してください。

PackageFile

必ず指定します。実行する外部プログラムです。このプログラムは、セットアップ配布パッケージに含まれている必要があります。

Arguments

省略できます。PackageFile で指定した実行可能ファイルのコマンド ライン引数を指定します。

FileCheck

この要素は、InstallChecks の子要素で、省略可能です。ブートストラップでは、FileCheck のインスタンスごとに、指定されたファイルが存在するかどうかを確認し、ファイルのバージョン番号を返します。ファイルにバージョン番号がない場合、Property で指定したプロパティには 0 が設定されます。ファイルが存在しない場合、Property には、値が設定されません。

FileCheck に要素はなく、次の属性を持ちます。

属性

説明

Property

必ず指定します。結果を格納するプロパティの名前です。このプロパティは InstallConditions 要素に従って行われるテストから参照できます。この要素は、Command 要素の子です。詳細については、「<Commands> 要素 (ClickOnce ブートストラップ)」を参照してください。

FileName

必ず指定します。検索するファイルの名前です。

SearchPath

必ず指定します。ファイルを検索するディスクまたはフォルダです。SpecialFolder が割り当てられている場合は相対パスで、それ以外の場合は絶対パスで指定する必要があります。

SpecialFolder

省略できます。Windows または ClickOnce にとって特に重要なフォルダです。既定値は、SearchPath を絶対パスと解釈したパスです。以下の値が有効です。

AppDataFolder。この ClickOnce アプリケーションのアプリケーション データ フォルダです。現在のユーザーに固有です。

CommonAppDataFolder。すべてのユーザーが使用するアプリケーション データ フォルダです。

CommonFilesFolder。現在のユーザー用の共有ファイル フォルダです。

LocalDataAppFolder。非ローミング アプリケーション用のデータ フォルダです。

ProgramFilesFolder。32 ビット アプリケーション用の標準の Program Files フォルダです。

StartUpFolder。システム起動時に開始されるすべてのアプリケーションを格納するフォルダです。

SystemFolder。32 ビット システム DLL を格納するフォルダです。

WindowsFolder。Windows システムのインストール フォルダです。

WindowsVolume。Windows システムのインストール ドライブまたはパーティションです。

SearchDepth

省略できます。指定したファイルを検索するサブフォルダの階層の深さです。検索は、深さ優先で行われます。既定値は 0 です。この場合、SpecialFolder および SearchPath で直接指定してあるフォルダだけが検索されます。

MsiProductCheck

この要素は、InstallChecks の子要素で、省略可能です。ブートストラップでは、MsiProductCheck のインスタンスごとに、指定された Microsoft Windows インストーラのインストールが最後まで実行されているかどうかを確認します。プロパティ値は、製品のインストール状態に基づいて設定されます。正の値は製品がインストールされていることを示し、0 または -1 はインストールされていないことを示します (詳細については、Windows インストーラ SDK の MsiQueryFeatureState 関数を参照してください)。Windows インストーラがコンピュータにインストールされていない場合は、Property が設定されません。

MsiProductCheck に要素はなく、次の属性を持ちます。

属性

説明

Property

必ず指定します。結果を格納するプロパティの名前です。このプロパティは InstallConditions 要素に従って行われるテストから参照できます。この要素は、Command 要素の子です。詳細については、「<Commands> 要素 (ClickOnce ブートストラップ)」を参照してください。

Product

必ず指定します。インストールされる製品の GUID です。

Feature

省略できます。インストールするアプリケーションの特定の機能に対する GUID です。

RegistryCheck

この要素は、InstallChecks の子要素で、省略可能です。ブートストラップでは、RegistryCheck のインスタンスごとに、指定されたレジストリ キーが存在するかどうか、または、そのレジストリ キーに指定された値が設定されているかどうかを確認します。

RegistryCheck に要素はなく、次の属性を持ちます。

属性

説明

Property

必ず指定します。結果を格納するプロパティの名前です。このプロパティは InstallConditions 要素に従って行われるテストから参照できます。この要素は、Command 要素の子です。詳細については、「<Commands> 要素 (ClickOnce ブートストラップ)」を参照してください。

Key

必ず指定します。レジストリ キーの名前です。

Value

省略可能です。取得するレジストリ値の名前です。既定では、既定値のテキストが戻ります。Value は String 型または DWORD 型のいずれかである必要があります。

RegistryFileCheck

この要素は、InstallChecks の子要素で、省略可能です。ブートストラップでは、RegistryFileCheck のインスタンスごとに、指定されたレジストリ キーからファイルのパスを取得し、指定されたファイルのバージョンを取得します。この機能は、検索対象のファイルを格納してあるディレクトリが、レジストリ内に値として指定されている場合に、特に便利です。

RegistryFileCheck に要素はなく、次の属性を持ちます。

属性

説明

Property

必ず指定します。結果を格納するプロパティの名前です。このプロパティは InstallConditions 要素に従って行われるテストから参照できます。この要素は、Command 要素の子です。詳細については、「<Commands> 要素 (ClickOnce ブートストラップ)」を参照してください。

Key

必ず指定します。レジストリ キーの名前です。File 属性が設定されていない場合には、この値がファイルのパスとして解釈されます。このキーが存在しない場合、Property は設定されません。

Value

省略可能です。取得するレジストリ値の名前です。既定では、既定値のテキストが戻ります。Value は String 型である必要があります。

File

省略可能です。ファイルの名前です。指定した場合には、レジストリ キーから取得した値をディレクトリ パスと仮定し、この名前をそのパスに追加します。指定しなかった場合には、レジストリから取得した値を、ファイルへの完全パスであると仮定します。

SearchDepth

省略できます。指定したファイルを検索するサブフォルダの階層の深さです。検索は、深さ優先で行われます。既定値は 0 です。この場合は、レジストリ キーの値で直接指定したフォルダだけが検索されます。

解説

実行するテストは、InstallChecks の子要素に定義しますが、これらの子要素でテストが実行されるわけではありません。テストを実行するには、Commands 要素の下に Command 要素を作成する必要があります。

使用例

次のコード例は、.NET Framework の製品ファイルで使用する場合の InstallChecks 要素を示しています。

<InstallChecks>
    <ExternalCheck Property="DotNetInstalled" PackageFile="dotnetchk.exe" />
    <RegistryCheck Property="IEVersion" Key="HKLM\Software\Microsoft\Internet Explorer" Value="Version" />
</InstallChecks>

InstallConditions

InstallChecks が評価されると、プロパティが生成されます。これらのプロパティは InstallConditions で使用され、パッケージをインストールするか、バイパスするか、またはパッケージが失敗するかが判断されます。次の表は、InstallConditions の一覧です。

InstallIf

コンポーネントをインストールするには、すべての InstallIf 条件が true になる必要があります。1 つ以上の InstallIf 条件が false になると、コンポーネントはバイパスされます。他の条件は評価されません。

FailIf

いずれかの FailIf 条件が true になると、パッケージは失敗します。残りの条件は評価されません。1 つ以上の InstallIf チェックが true であっても、パッケージは失敗します。

BypassIf

いずれかの BypassIf 条件が true になると、パッケージはバイパスされます。残りの条件は評価されません。1 つ以上の InstallIf チェックが true であっても、パッケージはバイパスされます。

定義済みプロパティ

ブートストラップは、InstallIf で使用される次のプロパティを自動的に定義します。次の表は、BypassIf 要素と FailIf 要素の一覧です。

プロパティ

説明

使用される値

Version9X

Windows 9X オペレーティング システムのバージョン番号。

4.10 = Windows 98

VersionNT

Windows NT ベースのオペレーティング システムのバージョン番号。

メジャー.マイナー.サービスパック

5.0 = Windows 2000

5.1.0 = Windows XP

5.1.2 = Windows XP Professional SP2

5.2.0 = Windows Server 2003

VersionNT64

Windows NT ベースの 64 ビット オペレーティング システムのバージョン番号。

上記と同じ。

VersionMsi

Windows インストーラ サービスのバージョン番号。

2.0 = Windows インストーラ 2.0

AdminUser

ユーザーが Windows NT ベースのオペレーティング システムの管理者特権を持っているかどうかを指定します。

0 = 管理者特権なし

1 = 管理者特権あり

たとえば、Windows 95 コンピュータへのインストールをブロックするには、次のようなコードを使用します。

<!-- Block install on Win95 -->
    <FailIf Property="Version9X" Compare="VersionLessThan" Value="4.10" String="InvalidPlatform"/>

参照

参照

<Commands> 要素 (ClickOnce ブートストラップ)

製品およびパッケージ スキーマ リファレンス