天天看点

App-V软件排序参考之(三):DSC方法介绍与如何排序辅助应用程序

序 

    App-V 4.5版有一个新功能,DSC(Dynamic Suite Composition),中文翻译为动态套件合成,它提供了一种新方法来集成在各虚拟应用程序之间共享的依赖关系、中间件和插件。一般的应用程序,在Secquencer上只要开始监视,安装应用程序,停止监视,转后我们就可以捕获到应用程序,但是辅助应用程序的排序有一个特别的地方,我发现并不是任何的辅助应用程序,安装完成后,系统都会捕获到东西出来的,有时候是遇到这样的尴尬情况,例如下图所示,不能继续下一步。 

      而实际上这是可以理解的,因为它本身很可能就是依赖于其他软件的小插件,而不是一个真正的软件。这就需要在停止监视前,打开主要应用程序,或者自己创造一个应用程序出来,原因下面会介绍。

什么是DSC(Dynamic Suite Composition) 

       首先看看什么是DSC, 以下一段摘自微软Technet杂志与Technet知识库,假如已经了解过,这两段可以忽略。 

       例如,假设您有五个 Web 应用程序,它们需要同一 Java 版本。在 App-V 4.1 中,您必须将此相同的 Java 版本添加到五个单独软件包中的每一个。假设 Java 版本需要一个补丁。管理员稍后必须为五个不同的软件包提供补丁。如使用 DSC,Java 只需打包一次,即可配置为能供所有五个 Web 应用程序使用的软件包。因此,修补 Java 只需要管理员为 Java 软件包提供一次补丁。 

     在对依赖于插件(如 ActiveX 控件)的应用程序或依赖于中间件(如 OLE DB 或 Java Runtime Environment (JRE))的应用程序进行排序时,可以使用动态套件合成功能。如果需要对每个使用这些相关组件的应用程序(包括组件)进行排序,则对这些组件执行更新时要求对所有主要应用程序重新排序。通过对不含这些组件的主要应用程序进行排序,然后对作为辅助程序包的中间件或插件进行排序,只需更新辅助程序包。此方法的一个优点是可以缩小主要程序包的尺寸。另一个优点是使您可以更好地控制对辅助应用程序的访问权限。主要程序包可以具有多个辅助程序包。但是,仅支持一个级别的依存关系,因此您不能将一个辅助程序包定义为依赖于另一个辅助程序包。此外,辅助应用程序只能是中间件或插件,且不能是另一个完整的软件产品。

为什么要打开应用程序,或者自己创建一个应用程序 

     辅助程序包是除主程序包外的第二个包. 根据我的观察,一方面,假如在Sequencer中至少要捕获到一个应用程序,才能完成序列化全过程, 而另一方面,当你需要将这个包导入管理控制台的时候,只有应用程序才有权限控制的功能,从而控制对辅助应用程序的访问者权限.所以必须至少有一个应用程序能够被捕获,那么你可以选择在主应用程序中打开一个应用程序,或者直接创建一个应用程序,比较简便的方法就是打开一个记事本再关闭, 那么至少能捕获到一个程序. 

     下面以Office2007的一个934K的很小的插件(Microsoft Save as PDF or XPS)为例,看看这样的小插件是怎样排序的, 你可以在停止监视前打开一个office任何一个程序查看,接着就至少捕获到一个应用程序了(建议不要打开所有应用程序来查看,不然可能会捕获到很多应用程序,而捕捉更多的应用程序对我们都来是没有大的作用的), 或者我们就直接打开一个记事本再关闭,因为后者具有普遍性,所以下面用打开我们”万能”的记事本来作一个介绍,这里介绍的是在App-V(SoftGrid4.5) 中成功排序辅助应用程序的一个方法,这个不是唯一的方法,也可能你需要会根据你自己实际的环境进行必要的修改。假如有哪里说得不对,请大家指正,谢谢。 

排序实验 

1. 在排序服务器上先真实地安装Office 2007,接着选了Microsoft Save as PDF or XPS 这个插件作为例子进行排序 

2. 像往常一样,打开Application Virtualization Sequencer,新建一个包,包名称offadd, 路径选择为Q:\offadd并选择开始监视 

3.点选这个小插件安装,一闪很快就安装完了 

4. 假如这时候停止监视,后面一步将捕获不到任何应用程序,无法继续下一步,这里的小技巧是,在Sequencer上打开记事本,接着将其关闭,有什么奥妙,看看下一步。 

5. 我们可以捕获到了一个记事本应用程序,并成功地完成序列化过程。排序步骤与普通排序一样,这里不在赘述。 

6. 我们在App-V server上将这个记事本程序导如,创建的名字为offadd 

7. 我们不需要选任何的快截方式,我们无需选择, 因为我们的目的不在得到这个记事本,而是成功排序,醉翁之意不在酒呵呵 

8. 导入成功了,可以看到offadd这一个应用程序 

9. 我们打开这个插件的.osd文件,找出CODEBASE这一行 

<CODEBASE HREF="RTSP://gztemp:1000/offadd/offadd.sft" GUID="8BB5013F-B364-45B9-A3FF-01E2122BE3A0" PARAMETERS="" FILENAME="%CSIDL_SYSTEM%\notepad.exe" SYSGUARDFILE="offadd\osguard.cp" SIZE="2044844"/> 

10. 将这一行放到office你需要使用到这个插件的.osd文件中,这里以word为例 

在紧挨 </VIRTUALENV> 标记前的 <VIRTUALENV> 部分结尾处的 </ENVLIST> 标记关闭后,插入 <DEPENDENCIES> 标记。 

将CODEBASE 这一行粘贴到刚创建的 <DEPENDENCIES> 标记后。假如这个包为必需的程序包(意味着在启动主要程序包之前必须先启动该程序包),请在 CODEBASE 标记内添加 MANDATORY=”TRUE” 属性。如果该程序包不是必需的程序包,则可以忽略该属性,这个例子,加不加都没关系,因为不是必须的,这里我加上了。 

保留CODEBASE这一行的3个必选属性 

必选: 

HERF: 

GUID: 

SYSGUARDFILE: 

可选: 

MANDATORY=”TRUE” 

<DEPENDENCIES> 

<CODEBASE HREF="RTSP://gztemp:1000/offadd/offadd.sft" GUID="8BB5013F-B364-45B9-A3FF-01E2122BE3A0" SYSGUARDFILE="offadd\osguard.cp" MANDATORY="TRUE"/> 

</DEPENDENCIES> 

11. 完成了,我们看看插件排序前后的效果 

本文转自 VirtualTom 51CTO博客,原文链接:http://blog.51cto.com/virtualtom/276809,如需转载请自行联系原作者