为VS的安装部署添加自定义系统必备项

VS的安装部署程序除了需要安装系统必备组件之外,有时还需要安装其他组件,但大量的自定义安装程序都是使用Windows Installer打包,如果在安装过程中直接集成,很显然会导致冲突,所以可以将作为系统必备项让部署程序进行选择,操作步骤整理如下:

1)将自定义的安装程序COPYBootstrapper文件夹中

VS2005为 Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapperr\Packages

VS2008为 Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

在此处建一个文件夹作为自定义系统必备组件,名称起好。例如:

在此文件夹中,断续建一个“zh-CHS”安装本地化文件夹,将安装程序COPY进这个文件夹中,如:

至此,我们将系统必备项所需的目录结构建好了,还需要将描述文件构建起来,一共两个xml文件。

(2)创建产品清单和程序包清单

产品清单就是上图那个product.xml文件;程序包清单是“zh-CHS”文件夹下的package.xml文件。

Product.xml文件的清单如下: 

<?xml version="1.0" encoding="utf-8"?>

<Product ProductCode="你的产品代码" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">

</Product>

 

Package.xml文件的清单如下: 

<?xml version="1.0" encoding="utf-8"?>

<Package Name="你的程序包组件名"  Culture="Culture" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">

  <InstallChecks>

    <RegistryCheck Property="你的程序包属性名" Key="注册表项" Value="注册表键值"/>

  </InstallChecks>

 

  <PackageFiles CopyAllPackageFiles="false">

    <PackageFile Name="安装包程序名"/>

  </PackageFiles>

 

  <Commands Reboot="Defer">

    <Command PackageFile="安装包程序名" Arguments='安装包运行参数'>

      <InstallConditions>

        <BypassIf Property="你的程序包属性名" Compare="ValueExists"/>

      </InstallConditions>

    </Command>

  </Commands>

</Package>

 

Package 元素的 Name 属性的值 其实就是 在VS部署程序的系统必备选择框中显示的组件名称。

<PackageFiles>元素用来指定组件包括的文件,要将每个安装文件都要用子元素<PackageFile>指定出来,VS部署程序在编译生成安装文件时,就是按这个清单将组件的文件COPY过去的。

<InstallChecks> < Commands >这两个元素是要配对的,和struts框架的控制文件一样,它们的主要作用就是利用注册表项或文件来判断组件是否需要安装。

如果要用注册表来判断该程序包是否已经在客户端上安装,就需要用<RegistryCheck>元素来检查,用Key="注册表项" 这个注册表项来判断检查,并给这个检查项目起个名字叫Property="你的程序包属性名" 。

<Command>元素则是在<InstallConditions>元素指定的条件满足时,执行相应的组件安装程序,如果不需特别指定,参数可以为空。

<InstallConditions>是指定安装条件

<BypassIf Property="你的程序包属性名" Compare="ValueExists"/>是通过注册表判断是否需要安装该组件。

 (3)配置完毕!

我们到VS部署程序的系统必备选择项中找找,就会发现这个组件了。如下图:

 

选择他,编译生成部署项目,在生成的安装目录中,就会发现该组件的安装包了。  

4)运行setup.exe文件,即可执行安装程序。

记住不是执行msi文件,msi安装文件不能进行系统必备组件的判断安装。系统必备组件安装如下图。

 

 

 

 

 

posted on 2012-03-08 11:32  蒹葭丶白露  阅读(1165)  评论(1)    收藏  举报

导航