应用程序定义文件结构
本文介绍了配置文件管理应用程序定义文件的 XML 结构。此结构适用于应用程序分析器和跨平台设置。
架构图
-
XML 声明和编码属性XML 声明必须指定属性 \<?xml version="1.0"\>。Encoding="UTF-8" 是一个推荐属性。
-
GroupDefinitions组集合的容器。它充当 XML 文档的根元素。其属性包括 version 和 GUID。它们是强制属性。
-
组定义子应用程序的设置。其属性是 name 和 GUID。它们是强制属性。
-
对象定义子应用程序的一个设置。其属性是 name 和 GUID。它们是强制属性。
-
平台Platform 在不同的操作系统中提供不同的定义。它可以使用可选属性 OSVersionNumber 来指定操作系统。当没有属性时,所有平台都接受设置的内部定义。Platform 必须包含以下元素之一:RegKey、RegValue、File、Folder 和 Wallpaper。
-
RegKey将设置定义为注册表中的一个键。它必须包含 Key 元素。它包括两个可选子元素:Recurse 和 Merge。Recurse 和 Merge 定义了配置文件管理漫游该键时的性能。另一个可选子元素是 ExcludeValues。ExcludeValues 定义了可以排除的注册表值。
-
RegValue将设置定义为注册表中的一个值。它必须包含 Key 以指定其父键的路径。
-
文件夹将设置定义为一个文件夹。它必须包含 Path 以指定文件夹的路径。它具有可选子元素
Recurse和Merge。Recurse 和 Merge 定义了配置文件管理漫游该文件夹时的性能。另一个可选子元素是ExcludeFiles,它定义了可以排除的文件。 -
文件将设置定义为一个文件。它必须包含 Path 以指定其父文件夹的路径,以及
FileName以指定文件的名称。 -
壁纸定义所有壁纸设置。不需要任何属性或子元素。配置文件管理会自动漫游这些设置。
-
Key指定注册表键的路径或父注册表键的路径。Key 是 RegKey 和 RegValue 的子元素。
-
ValueName指定注册表值的名称。它是 RegValue 的子元素。
-
路径指定文件夹的路径或父文件夹的路径。它是 Folder 和 File 的子元素。可以采用 Profile Management 变量。
-
FileName指定文件的名称。它是 File 的子元素。
-
递归RegKey 和 Folder 的可选子元素。如果此元素存在,Profile Management 将递归漫游密钥和文件夹。
-
合并RegKey 和 Folder 的可选子元素。如果此元素存在,Profile Management 将合并(但不替换)密钥和文件夹。
-
ExcludeValuesRegKey 的可选子元素。指定漫游密钥时可以排除的值。
-
ExcludeFilesFolder 的可选子元素。指定漫游文件夹时可以排除的文件。
-
排除ExcludeValues 和 ExcludeFiles 的子元素。指定文件或注册表值的排除项。
注意
请确保您的文档包含正确的语法格式。Profile Management 在加载这些文件时,会使用 CPSValidationSchema.xsd 验证文件来检查这些文件。您可以在 Profile Management 的安装路径下找到该验证文件。Profile Management 会忽略不正确的文件并在日志中记录错误消息。
示例
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2011 Citrix Systems, Inc. All Rights Reserved. -->
<GroupDefinitions GUID="748E63D3-426E-4796-9C32-420B25DB2D9F" Version="4.0.0.0">
<!-- Application Settings -->
<Group GUID="0FCCCF29-0A0E-482d-A77E-3F39A8A854A6" Name="Application Settings">
<!-- Registry Key Setting Example -->
<Object GUID="637EC13C-2D47-4142-A8EB-3CEA6D53522A" Name="Software\Application\certain key">
<Platform>
<RegKey>
<Key>Software\Microsoft\Office\certain key</Key>
<Merge/>
<Recurse/>
<ExcludeValues>
<Exclude>excluded value 1</Exclude>
<Exclude>excluded value 2</Exclude>
<Exclude>excluded value 3</Exclude>
</ExcludeValues>
</RegKey>
</Platform>
</Object>
<!-- Registry Value Setting Example -->
<Object GUID="3C896310-10C4-4e5f-90C7-A79F4E653F81" Name="Software\Application\certain value">
<!-- Folder Setting Example -->
<Object GUID="7F8615D0-5E63-4bd0-982D-B7740559C6F9" Name="!CTX_ROAMINGAPPDATA!\Application\setting folder">
<Platform>
<Folder>
<!-- We can use Citrix variable if necessary -->
<Path>!CTX_ROAMINGAPPDATA!\Application\setting folder</Path>
<Merge/>
<Recurse/>
<ExcludeFiles>
<Exclude>excluded file 1</Exclude>
<Exclude>excluded file 2</Exclude>
<Exclude>excluded file 3</Exclude>
</ExcludeFiles>
</Folder>
</Platform>
</Object>
<!-- File Setting Example -->
<Object GUID="7F8615D0-5E63-4bd0-982D-B7740559C6F9" Name="!CTX_ROAMINGAPPDATA!\Application\file.txt">
<Platform>
<File>
<!-- We can use Citrix variable if necessary -->
<Path>!CTX_ROAMINGAPPDATA!\Application</Path>
<FileName>file.txt</FileName>
</File>
</Platform>
</Object>
<!-- Setting based on different OS -->
<Object GUID="1B43DE3F-EC9C-463c-AC19-CD01D00219B6" Name="!CTX_ROAMINGAPPDATA!\Application\%osname%\folder">
<!-- Assuming that the folder locates differently when in different platforms -->
<Platform OSVersionNumber="6.1">
<!-- Win7 -->
<Folder>
<Path>!CTX_ROAMINGAPPDATA!\Application\Win7\folder</Path>
<Recurse/>
</Folder>
</Platform>
<Platform OSVersionNumber="10.0">
<!-- Win10 -->
<Folder>
<Path>!CTX_ROAMINGAPPDATA!\Application\Win10\folder</Path>
<Recurse/>
</Folder>
</Platform>
</Object>
</Group>
</GroupDefinitions>