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

应用到: Application Virtualization 5.0, Application Virtualization 5.0 SP1, Application Virtualization 5.0 SP2, Application Virtualization 5.0 SP3

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

note备注
如果正在运行采用 64 位体系结构的计算机,则必须使用 x86 版本的 PowerShell。

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

以下信息为转换现有虚拟应用程序包提供指导。

重要

必须将包转换器配置为始终将包组成文件保存到安全位置和目录中。仅管理员可访问该安全位置。此外,部署包时应将包保存至安全的位置,或确保在转换过程中不允许任何其他用户登入。

入门

  1. 在您的环境中为计算机安装 App-V 排序器。有关如何安装排序器的信息,请参阅 如何安装排序器

  2. 以下 cmdlets 可用:

    - 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** 标记允许对包进行转换并将包设置为默认完整下载。  
    
    
    
    
      <table>
      <colgroup>
      <col style="width: 100%" />
      </colgroup>
      <thead>
      <tr class="header">
      <th><img src="images/Cc817166.note(TechNet.10).gif" title="note" alt="note" />备注</th>
      </tr>
      </thead>
      <tbody>
      <tr class="odd">
      <td>必须首先创建输出目录才能对其进行指定。
      <p></p></td>
      </tr>
      </tbody>
      </table>
    

    高级转换技巧

    - 管道传输 - 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` 参数获取字符串目标,该参数代表目录路径的列表。这样可以输入 `$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 问题?使用 App-V TechNet Forum(App-V TechNet 论坛)

另请参阅

其他资源

App-V 5.0 的操作
How to Convert a Package Created in a Previous Version Using PowerShell [Beta]

-----
你可以在 TechNet Library(TechNet 库)中详细了解 MDOP、在 TechNet Wiki 上搜索疑难解答,或者在 FacebookTwitter 上了解我们的最新动态。
-----