Next Topic

Previous Topic

Book Contents

設定

<Setting/>エレメントは、このパッケージが移行する設定を記述します。

マッピング

すべての文字列が、ソースから移行先へマップされます。プログラムファイルのディレクトリがマシンによって変化する場合、エンジンが通知し、そこをポイントするパスを訂正します。同様に、ユーザーのドキュメントフォルダが移動した場合、適用する前にパスが更新されます。

レジストリーパスの別名

多くの設定はレジストリーに保存され、レジストリーパスによって参照されます。以下の別名がエンジンによって認識され、設定パッケージを読みやすくします。別名を使用するすべての例。

別名

参照先

HKCU

HKEY_CURRENT_USER

HKLM

HKEY_LOCAL_MACHINE

HKCR

HKEY_CLASSES_ROOT

HKU

HKEY_USERS

HKCC

HKEY_CURRENT_CONFIG

HKDD

HKEY_DYN_DATA

HKPD

HKEY_PERFORMANCE_DATA

設定内での設定

設定をグループ化する際に便利であり、設定パッケージが読みやすくなります:

        <Setting Name="Security">
            <Setting Name="EnablePGP">
                <Location Type="registry" SubType="value">
                    HCKU\Software\Crunch\EnablePGP
                </Location>
            </Setting>
            <Setting Name="RequirePassword">
                <Location Type="registry" SubType="value">
                    HCKU\Software\Crunch\PasswordRequired
                </Location>
            </Setting>
        </Setting>

これは設定パッケージ内での単なる論理的グループであることに注意してください。それらの設定がどのように保存されているかに対応する必要はありません。任意の数の設定を任意の深さでグループ化できます。

こうした設定の名前も、少し異なっています。ネストされている設定には、認証された名前があり、それはその親の認証された名前、順方向のスラッシュ、そしてそれ自体の名前で構成されます。したがって、こうした設定の認証された名前はSecurity/EnablePGPSecurity/RequirePasswordのようになります。

キーのツリーをregistry/subkeyで移行

たいていの場合は、レジストリーキーの全体、そのすべての値、そのすべてのサブキー、およびそのすべての値を移動したいと思うでしょう。これは、Type="registry" SubType="subkey"で実行できます。

        <Setting Name="CrunchSettings">
            <Location Type="registry" SubType="subkey">
                HKCU\Software\Crunch
            </Location>
        </Setting>

すべての文字列は自動的にマップされ、すべてのデータタイプは自動的に決定されます。一定の場合に、レジストリーに移行したいファイルへのパスが含まれていれば、そうしたパスはファイルパスを使用して個別に取り扱えるはずです。まずregistry/subkeyの方法を試してください。必要な場合にだけ、他のレジストリーSubTypeで再ソートしてください。

registry/valueによるレジストリーの値の移行

レジストリーの値はそのパスを与えて移行できます:

        <Setting Name="ReticulateSplines">
            <Location Type="registry" SubType="value">
                HKCU\Software\Crunch\ReticulateSplines
            </Location>
        </Setting>

registry/valueexistenceによるレジストリーの値の存在によらない移行

時にはアプリケーションにはレジストリーの値に関する情報が保存されていないことがあrますが、その存在をチェックします。これは以下のように移行できます:

        <Setting Name="IsRegistered">
            <Location Type="registry" SubType="valueexistence">
                HKCU\Software\Crunch\Registered
            </Location>
        </Setting>

fileによるファイルの移行

固定位置でのファイルの移行は簡単です:

        <Setting Name="DataFile">
            <Location Type="file" File="C:\Path\To\File.dat" />
        </Setting>

可能な限り、変数を使用します:

        <Setting Name="DataFile">
            <Location Type="file" File="%ProgramFiles%\Crunch\File.dat" />
        </Setting>

ファイルパスによるパスがレジストリーにあるファイルの移行

設定が実際にファイルへのパスである場合、しばしばパスだけなく、ファイルも同様に保存したい場合があります。この場合、Type="filepath"属性を<Setting/>に追加すると、エンジンがファイルを移動します。レジストリーの値がマップおよび移行され、ファイルが移行されて、適切にマップされた場所へ適用されます。

        <Setting Name="DataFile" Type="filepath">
            <Location Type="registry" SubType="value">
                HKCU\Software\Crunch\DataFilePath
            </Location>
        </Setting>

属性

説明

可能な値

必須ですか?

名称

設定の名前です。ネストした設定の場合、認証された名前は、親の認証された名前、順方向のスラッシュ、そしてその属性の値になります。

a-z、A-Z、0-9、ドット、ダッシュ、および下線の文字だけで構成されるテキストです。スペース文字は使えません。

はい

タイプ

この設定は、単なる文字列とは取扱いが違うでしょうか?値に追加的な意味があるなら、Typeでその意味を特定できます。

ファイルパスまたはなし

いいえ

OSVersion

指定したOSにこれを移行するだけです。複数OSの場合は、パイプ記号で区切ります。たとえば、Windows95|Windows2000のようになります。一部の値は同じことを行います— Anyで始まる場合。

Windows2000またはWindowsXPまたはWindowsVistaAnyWindowsはどれとでも一致します。

いいえ

子供

最小

最大

<Location/>

0

任意

<Default/>

0

1

<Setting/>

0

任意

<SettingsList/>

0

任意