如何转换在以前版本的 App-V 中创建的程序包

可以使用包转换器实用工具升级使用以前版本的 App-V 创建的虚拟应用程序包。

注意
如果运行的是具有 64 位体系结构的计算机,则必须使用 x86 版本的 PowerShell。

包转换器只能直接转换使用 App-V 4.5 序列器或后续版本创建的包。 在转换之前,必须先将使用 App-V 4.5 之前的版本创建的包升级到 App-V 4.5 或 App-V 4.6 格式。

以下信息提供了转换现有虚拟应用程序包的方向。

重要提示
必须将包转换器配置为始终将包成分文件保存到安全位置和目录。 只有管理员才能访问安全位置。 此外,在部署包时,应将包保存到安全的位置,或确保在转换过程中不允许其他用户登录。

入门

  1. 在环境中的计算机上安装 App-V Sequencer。 有关如何安装 Sequencer 的信息,请参阅 如何安装 Sequencer

  2. 导入所需的 Powershell 模块

Import-Module AppVPkgConverter
  1. 以下 cmdlet 可用:

    • Test-AppvLegacyPackage - 此 cmdlet 旨在检查包。 它将返回有关包的任何故障的信息,例如缺少 .sft 文件、无效的源、 .osd 文件错误或无效的包版本。 此 cmdlet 不会分析 .sft 文件或执行任何深入验证。 有关此 cmdlet 的选项和基本功能的信息,请使用 PowerShell cmdline 键入 Test-AppvLegacyPackage -?

    • ConvertFrom-AppvLegacyPackage – 若要转换现有包,请键入 ConvertFrom-AppvLegacyPackage c:\contentStore c:\convertedPackages。 在此命令中, c:\contentStore 表示现有包的位置,是 c:\convertedPackages 生成的 App-V 5.0 虚拟应用程序包文件将保存到的输出目录。 默认情况下,如果不指定新名称,旧包名称将用于 App-V 5.0 文件名。

      此外,包转换器通过将包设置为流式处理 App-V 包故障来优化 App-V 5.0 中的包性能。 这比主功能块和完全下载包更具性能。 使用 “ DownloadFullPackageOnFirstLaunch ”标志,可以转换包,并将包设置为在默认情况下完全下载。

      注意
      在指定输出目录之前,必须创建输出目录。

高级转换提示

  • 管道 - PowerShell 支持管道。 管道允许你调用 dir c:\contentStore\myPackage | Test-AppvLegacyPackage。 在此示例中,表示的目录对象 myPackage 将作为输入 Test-AppvLegacyPackage 提供给命令并绑定到 -Source 参数。 如果要将命令批处理在一起,像这样的管道特别有用;例如, dir .\ | Test-AppvLegacyPackage | ConvertFrom-AppvLegacyAppvPackage -Target .\ConvertedPackages. 此管道命令将测试包,然后传递这些对象以实际转换。 还可以对包应用筛选器,而不会出错,或者仅指定包含 .sprj 文件的 目录,或将它们传递给另一个 cmdlet,该 cmdlet 将筛选包添加到服务器或将其发布到 App-V 5.0 客户端。

  • 批处理 - PowerShell 命令启用批处理。 更具体地说,cmdlet 支持为 -Source 表示目录路径列表的参数获取 string[] 对象。 这允许输入 $packages = dir c:\contentStore ,然后调用 ConvertFrom-AppvLegacyAppvPackage-Source $packages -Target c:\ConvertedPackages 或使用管道和呼叫 dir c:\ContentStore | ConvertFrom-AppvLegacyAppvPackage -Target C:\ConvertedPackages

  • 其他功能 - PowerShell 具有其他内置功能,例如别名、管道、延迟绑定、.NET 对象等。 所有这些都可以在 PowerShell 中使用,并且可以帮助你为包转换器创建高级方案。

有 App-V 问题? 使用 App-V TechNet 论坛

App-V 5.0 的操作