Next Topic

Previous Topic

Book Contents

设置

<Setting/> 元素描述了此软件包迁移的设置。

映射

所有字符串都从源映射到目标。如果计算机之间的“Program Files”目录发生更改,则引擎会发现该情况并更正指向它的路径。同样,如果用户的“Documents”文件夹被移动,则在应用路径前将对其进行更新。

注册表路径别名

许多设置都储存在注册表中,并通过其注册表路径引用。以下别名可由引擎识别,从而使设置软件包更加容易读取。所有示例都使用它们。

别名

引用

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 进行迁移而不管是否存在注册表值

有时,应用程序不会在注册表值中储存任何信息,但会检查其是否存在。可按如下方式对其进行迁移:

        <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>

使用 filepath 迁移路径在注册表中的文件

当设置实际为文件的路径时,您通常希望不只储存该路径,还要储存文件。在此情况下,向 <Setting/> 添加 Type="filepath" 属性,引擎即会为您移动文件。注册表值将被映射和迁移,而文件会被迁移并应用到适当映射的位置。

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

属性

Description

可能值

必需?

Name

设置的名称。对于嵌套设置,匹配名称由父项匹配名称、前斜线及其属性值顺次组成。

其文本仅使用字符 a-z、A-Z、0-9、圆点、破折号和下划线。不允许使用空格。

类型

是否应将该设置与单纯的字符串视为不同情况处理?如果该值存在其他含义,则 Type 可以标识该含义。

filepath 或无内容

OSVersion

仅在指定操作系统上迁移该项。对于多个操作系统,请使用竖线将它们分开:例如,Windows95|Windows2000。请注意,某些值可为您执行该操作,Any 开头的值。

Windows2000WindowsXPWindowsVistaAnyWindows 将匹配上述任一项。

子项

最小

最大

<Location/>

0

任意

<Default/>

0

1

<Setting/>

0

任意

<SettingsList/>

0

任意

主题 : 发送反馈。 从内容表格的第一个主题下载此联机图书的 PDF 版本。