

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 应用程序详情
<a name="applications-details"></a>

应用程序详细信息包含有关预热清单和应用程序目录配置的信息。

## 应用程序 PreWarm 清单
<a name="application-prewarm-manifests"></a>

在创建 WorkSpaces 应用程序映像时，您可以指定要向用户提供的应用程序。要加快应用程序的启动时间，您可以准备一份 PreWarm 清单。这本质上是用户启动应用程序时应用程序需要启动的文件目录。在实例配置期间，将在会话连接之前准备好这些文件，以加快用户会话中的应用程序启动时间。

在将预热清单导入应用程序环境之前，必须在 AMI 上预先创建。 WorkSpaces 您可以选择创建一个通用 Prewarm 清单文件，也可以为每个应用程序创建一个清单文件。这会改变您以后导入 AMI 的方式。

### 常见预热清单
<a name="common-prewarm-manifest"></a>

对于您要预热的每个应用程序，请启动该应用程序并执行用户可能执行的任何初始交互。然后，使用以下命令瞄准存储应用程序数据的目录。

```
dir -path "C:\Path\To\Folder\To\Optimize" -Recurse -ErrorAction SilentlyContinue | %{$_.FullName} | Out-File "C:\ProgramData\Amazon\Photon\Prewarm\PrewarmManifest.txt" -encoding UTF8 -append
```

这会将针对每个应用程序进行优化的文件追加到公共`C:\\ProgramData\\Amazon\\Photon\\Prewarm\\PrewarmManifest.txt`文件中。无需执行其他操作即可执行应用程序预热。 WorkSpaces 应用程序将在上述位置查找预热文件，如果存在则使用它。

此过程是可选的，随着预热清单大小的增加，队列配置时间也将增加。因此，请注意在优化和队列配置之间取得平衡。

### 特定于应用程序的清单
<a name="application-specific-manifests"></a>

在图像导入期间，您可能希望为每个应用程序指定单独的应用程序清单文件，以便更轻松地跟踪每个应用程序的预热资产。为此，请执行与上述相同的步骤，但不要创建公用`C:\\ProgramData\\Amazon\\Photon\\Prewarm\\PrewarmManifest.txt`文件，而是在您的 AMI 上为每个应用程序创建一个文件。

对于您要预热的每个应用程序，请启动该应用程序并执行用户可能执行的任何初始交互。然后，使用以下命令瞄准存储应用程序数据的目录。

```
dir -path "C:\Path\To\Folder\To\Optimize" -Recurse -ErrorAction SilentlyContinue | %{$_.FullName} | Out-File "C:\Path\To\My\<ApplicationName>PreWarm.txt" -encoding UTF8 -append
```

我们将在图像导入过程中使用这些应用程序预热文件。再说一遍，这是完全可选的。你可以选择使用此方法、Common Prewarm Manifest 方法，或者根本不使用预热清单。

## 应用程序目录配置
<a name="application-catalog-configs"></a>

`AppCatalogConfig`它允许您在 AMI 导入期间指定要注册到 WorkSpaces 应用程序映像的应用程序。`AppCatalogConfig`是以下结构的应用程序配置对象的 JSON 列表。

```
[  
    {  
        "Name": "Rufus", //Required and must be unique among the list of applications  
        "DisplayName": "Rufus",  
        "AbsoluteAppPath": "Rufus", //Required  
        "AbsoluteIconPath": "Rufus",  
        "AbsoluteManifestPath": "Rufus",  
        "WorkingDirectory": "Rufus",  
        "LaunchParameters": "Rufus"  
    }  

    ...  

    // Up to 50 applications total  
 ]
```

每个应用程序的唯一必填字段是`Name`和`AbsoluteAppPath`。每个字段的详细信息如下：

姓名 [**必填**]  
+ 给定名称供您的应用程序进行标识
+ 介于 1 到 100 个字符之间
+ 允许的字符正则表达式 `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,99}$`
+ 在给定内容中必须是唯一的 AppCatalogConfig

DisplayName  
+ 要向用户显示的给定应用程序的显示名称
+ 介于 0 到 100 个字符之间
+ 允许的字符正则表达式 `^[a-zA-Z0-9][a-zA-Z0-9_. -]{0,99}$`

AbsoluteAppPath [**必填**]  
+ 用于启动应用程序的可执行文件的路径
  + 这是用户选择您的应用程序时将启动的可执行文件
+ 介于 1 到 32767 个字符之间
  + 此字符长度上限是为了支持 Windows 中的扩展文件路径。如果使用大于 260 个字符的文件路径，请确保您的 AMI 和应用程序已正确配置为支持 Windows 扩展文件路径。
+ 使用转义后的文件路径字符串，例如
  + `"C:\\Windows\\System32\\notepad.exe"`

AbsoluteManifestPath  
+ 仅在您使用时适用 [特定于应用程序的清单](#application-specific-manifests)
+ 此应用程序的预热清单文件路径
+ 介于 0 到 32767 个字符之间
  + 此字符长度上限是为了支持 Windows 中的扩展文件路径。如果使用大于 260 个字符的文件路径，请确保您的 AMI 和应用程序已正确配置为支持 Windows 扩展文件路径。
+ 使用转义后的文件路径字符串，例如
  + `"C:\\Path\\To\\PrewarmManifest.txt"`

AbsoluteIconPath  
+ AMI 上用于应用程序的图标文件的路径。
  + 流式传输到此图像时，将向用户显示此图标。
  + 如果未提供任何图标，则该图标将从可执行文件本身派生。
  + 请注意选择具有适当处理背景透明度的图标文件，以便为用户提供良好的客户体验
    + 使用 PNG 图片
+ 介于 1 到 32767 个字符之间
  + 此字符长度上限是为了支持 Windows 中的扩展文件路径。如果使用大于 260 个字符的文件路径，请确保您的 AMI 和应用程序已正确配置为支持 Windows 扩展文件路径。
+ 使用转义后的文件路径字符串，例如
  + `"C:\\Path\\To\\ApplicationIcon.png"`

WorkingDirectory  
+ 用于启动应用程序的工作目录
+ 介于 0 到 32767 个字符之间
  + 此字符长度上限是为了支持 Windows 中的扩展文件路径。如果使用大于 260 个字符的文件路径，请确保您的 AMI 和应用程序已正确配置为支持 Windows 扩展文件路径。
+ 使用转义后的文件路径字符串，例如
  + `"C:\\Path\\To\\Working\\Directory"`

LaunchParameters  
+ 用作中指定的可执行文件的启动参数的字符串 `AbsoluteAppPath`
+ 介于 0 到 1024 个字符之间
+ 使用带有所需启动参数完整列表的转义字符串，例如以下示例，该示例展示了如何使用 PowerShell 脚本作为应用程序，方法是将 PowerShell 可执行文件用作应用程序，并在启动参数中提供了脚本
  + AbsoluteAppPath
    + `"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"`
  + LaunchParameters
    + `"-File \"C:\\Path\\To\\App\\Script.ps1\""`

### 样本 AppCatalogConfig
<a name="sample-appcatalogconfig"></a>

这是 Notepad、Google Chrome 和 Mozilla Firefox 的简短示例 AppCatalogConfig 

```
[  
    {  
        "Name": "Notepad",  
        "DisplayName": "Notepad",  
        "AbsoluteAppPath": "C:\\Windows\\System32\\notepad.exe"
    },  
    {  
        "Name": "Chrome",  
        "DisplayName": "Chrome",  
        "AbsoluteAppPath": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
        "LaunchParameters": "https://www.amazon.com/"  
    },  
    {  
        "Name": "Firefox",  
        "DisplayName": "Firefox",  
        "AbsoluteAppPath": "C:\\Program Files\\Mozilla Firefox\\firefox.exe",
        "LaunchParameters": "https://aws.amazon.com/"  
    }  
 ]
```