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

适用于:

  • Windows 10
  • Windows 11

可以使用包转换器实用工具升级以前版本的 App-V 创建的虚拟应用程序包。 本部分将介绍如何转换现有虚拟应用程序包进行升级。

备注

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

包转换器只能直接转换 App-V sequencer 版本 4.5 或更高版本创建的包。 在转换之前,使用 4.5 之前的 App-V 版本创建的包必须升级到至少 App-V 4.5。

重要

为了确保文件安全,必须将包转换器配置为始终将包成分文件保存到只能由管理员访问的安全位置和目录。 部署包时,应将包保存到安全位置,或确保在转换过程中没有其他用户可以登录。

App-V 4.6 安装文件夹重定向到虚拟文件系统根

将包从 App-V 4.6 转换为 App-V for Windows 10/11 时,适用于Windows客户端包的 App-V 可以访问创建 4.6 包时需要使用的硬编码驱动器。 驱动器号将是在 4.6 排序计算机上选择作为安装驱动器的驱动器。 (默认驱动器是驱动器 Q.)

App-V 包转换器将在 Filesystem 元素的FilesystemMetadata.xml文件中保存 App-V 4.6 安装根文件夹和短文件夹名称。 当 app-V for Windows 客户端创建虚拟过程时,它会将来自 App-V 4.6 安装根目录的请求映射到虚拟文件系统根目录。

入门

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

  2. 可以输入以下 cmdlet 来检查或转换包:

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

      Test-AppvLegacyPackage -?
      
    • ConvertFrom-AppvLegacyPackage - 此 cmdlet 将包从旧版本转换为更新的版本。 若要转换现有包,请输入以下 cmdlet:

      ConvertFrom-AppvLegacyPackage C:\contentStore C:\convertedPackages
      

      在此 cmdlet 中,C:\contentStore表示现有包的位置,是C:\convertedPackages生成的适用于Windows客户端虚拟应用程序包文件的 App-V 的输出目录。 默认情况下,如果未指定新名称,将使用旧包名称。

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

      备注

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

高级转换使用技巧

  • 管道 - Windows PowerShell支持管道。 通过管道可以输入类似于以下示例的 cmdlet:

    dir C:\contentStore\myPackage | Test-AppvLegacyPackage
    

    在此示例中,表示的目录对象 myPackage 将作为输入提供给 Test-AppvLegacyPackage cmdlet 并绑定到 -Source 参数。 如果要将命令批处理在一起,例如在以下示例 cmdlet 中,此类管道尤其有用:

    dir .\ | Test-AppvLegacyPackage | ConvertFrom-AppvLegacyAppvPackage -Target .\ConvertedPackages
    

    此管道示例命令测试包,然后传递对象以进行转换。 还可以对包应用筛选器,而不会出错,或者仅指定包含 .sprj 文件的 目录,或将它们传递给另一个 cmdlet,该 cmdlet 将筛选包添加到服务器或将其发布到 App-V 客户端。

  • 批处理 - Windows PowerShell命令启用批处理。 更具体地说,cmdlet 支持为表示目录路径列表的 -Source 参数获取 string[] 对象。 此功能允许你一起输入以下 cmdlet:

    $packages = dir C:\contentStore
    ConvertFrom-AppvLegacyAppvPackage-Source $packages -Target C:\ConvertedPackages
    

    或者,可以使用如下所示的管道:

    dir C:\ContentStore | ConvertFrom-AppvLegacyAppvPackage -Target C:\ConvertedPackages
    
  • 其他功能 - Windows PowerShell具有别名、延迟绑定、.NET 对象等其他功能的其他内置功能。 这些功能可以帮助你为包转换器创建高级方案。

相关文章