HOW TO:为 MSDE 2000 Sample.msi 文件创建修补文件

文章翻译 文章翻译
文章编号: 314131 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文介绍了如何为名为 Sample.msi 的 Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) 创建修补文件。Sample.msi 是随 SQL Server Standard Edition、SQL Server Enterprise Edition 和 SQL Server Developer Edition 开发工具附带的一个示例程序包。

一般信息

您可以使用 Sample.msi 文件将 MSDE 2000 与您的应用程序打包在一起。使用 Sample.msi 文件,您可以更改其中的产品代码和程序包代码,以便您的安装程序包不会与同一台计算机上安装的其他产品发生冲突。有关更多信息,请参阅 SQL Server 2000 联机图书中的“Managing Desktop Engine Installation Package Files”(管理桌面引擎安装程序包文件)主题。

要为 MSDE 2000 创建修补文件,您必须透彻地理解 Windows Installer 技术。有关 Windows Installer 技术的更多信息,请访问下面的 Microsoft Web 站点,以查看 Windows Installer SDK 文档:

http://msdn.microsoft.com
要按照本文所描述的示例步骤操作,您必须安装有 Windows Installer SDK 1.5 或 2.0 版。Windows Installer SDK 2.0 是 Windows Platform SDK 的组成部分。此外,还应确保存在下列文件相应的路径:

  • Orca.exe
  • Guidgen.exe
  • Msimsp.exe
  • Makecab.exe
  • Patchwiz.dll
您必须熟悉 Orca.exe 工具,才能在 .msi 文件内执行基本的编辑操作、更改产品代码、更改程序包代码以及向数据库表中添加行或修改其中的行。

有关如何使用 Orca.exe 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
255905 HOWTO:Use the Orca Database Editor to Edit Windows Installer Files

创建 Service Pack 修补程序的步骤

以下示例步骤描述了如何为 MSDE 2000 Release to Manufacturer (RTM) Sample.msi 创建 Service Pack 1 修补程序。

注意:可以用 Service Pack 2 代替 Service Pack 1。
  1. 创建文件夹,然后复制文件:


    1. 本文使用名为 \\MachineA\Share1 的示例共享。在按照示例步骤操作的同时,您必须根据自己的计算机共享设置来使用您的共享文件夹。使该文件夹的结构与以下结构类似,并确保在创建修补程序时,您对所有共享都拥有完全控制权限:

      \\MachineA\Share1\RTM
      \\MachineA\Share1\RTM\AdminImage
      \\MachineA\Share1\Sp1
      \\MachineA\Share1\Sp1\AdminImage
      \\MachineA\Share1\RTM\Patch


      注意:这些文件夹可以是本地文件夹。此外,如果资源来自不同的计算机,当您生成修补程序时,可以使用统一命名约定 (UNC)。
    2. 将 Sample.msi 和 Sqlrun.cab 文件从 MSDE 2000 RTM 复制到 \\MachineA\Share1\RTM 文件夹中。如果您以前修改过 Sample.msi 文件(通过修改产品代码、程序包代码或 Sample.msi 的名称),请复制修改过的 Sample.msi 文件。

      注意:Sample.msi 文件位于 Devtools\Samples\Desktop 目录中,而 Sqlrun.cab 文件位于 MSDE\Setup 目录中。
    3. 将 Sqlrun01.msi 和 Sqlrun.cab 文件从 MSDE 2000 Service Pack 1 复制到 \\MachineA\Share1\Sp1 文件夹中。

      注意:已向 MSDN Universal 订户发布了 Sqlrun01.msi 和 SP1 合并模块或 Sqlrun01.msi 和 SP2 合并模块。
  2. 更改或验证 Sqlrun01.msi 文件中的程序包代码和产品代码。


    1. 注意:当您生成全局唯一标识符 (GUID) 时,请确保将它转换为全部大写。这适用于本文中提到的所有 GUID。所有 Windows Installer SDK 文档在产品代码和程序包代码 GUID 中的那些字母必须为大写。因为 Guidgen.exe 实用工具生成包含小写字母的 GUID,因此您必须将这些 GUID 中的小写字母更改为大写才能将它们用作产品代码或程序包代码。

    2. 更改 Sqlrun01.msi 的 Property 表中的产品代码以匹配您的 Sample.msi 文件的产品代码。
    3. 使用 Guidgen.exe 工具生成一个新的 GUID。确保新的 GUID 为大写字母。从 Sqlrun01.msi 的摘要信息中,通过使用 Orca.exe 工具或 Msiinfo.exe 工具将程序包代码更改为新的 GUID。
  3. 创建 Windows Installer 管理镜像:


    1. 通过使用类似下面的命令来创建 Sample.msi 文件的管理镜像:
      msiexec.exe /a \\MachineA\Share1\RTM\Sample.msi TARGETDIR=\\MachineA\Share1\RTM\AdminImage /L*v \\MachineA\Share1\RTM\AdminImage\Admin.log
    2. 通过使用类似下面的命令来创建 Sqlrun01.msi 文件的管理镜像:
      msiexec.exe /a \\MachineA\Share1\sp1\Sqlrun01.msi TARGETDIR=\\MachineA\Share1\Sp1\AdminImage /L*v \\MachineA\Share1\Sp1\AdminImage\Admin.log
    3. 使用 Orca.exe 工具或 Msiinfo.exe 工具,并确保上述两个 AdminImage 文件夹中的两个 .msi 文件没有压缩。
  4. 生成修补程序创建属性文件:


    1. 将 Template.pcp 文件从 Windows Installer SDK 复制到 \\MachineA\Share1\Patch,然后使用 Orca.exe 工具分别在表或摘要信息中执行下列更改:
      1. 在含有下列值的 ImageFamilies 表中添加一行:
        收起该表格展开该表格
        FamilyMSDEApps
        MediaSrcPropNameMSDE_SP1_UPDATE
        MediaDiskId2
        FileSequenceStart1000
      2. 在含有下列值的 UpgradedImages 表中添加一行:
        收起该表格展开该表格
        UpgradedMSDE_sp1
        MsiPath\\MachineA\Share1\Sp1\AdminImage\Sqlrun01.msi
        FamilyMSDEApps

      3. 在含有下列值的 TargetImages 表中添加一行:
        收起该表格展开该表格
        TargetMSDE_rtm
        MsiPath\\MachineA\Share1\RTM\AdminImage\Sample.msi
        UpgradedMSDE_sp1
        Order1
        ProductValidateFlags0x00000922
        IgnoreMissingSrcFiles0


      4. Properties 表中的行更改为下列值:
        收起该表格展开该表格
        PatchOutPutpath\\MachineA\Share1\Patch
        PatchGUID使用由 Guiden.exe 生成的新 GUID。(确保 GUID 为大写字母。)
        AllowProducctCodeMismatches0
        AllowProductVersionMajorMismatches0
        IncludeWholeFilesOnly1
      5. 将 Template.pcp 文件的程序包代码更改为由 Guidgen.exe 生成的新 GUID。确保 GUID 为大写字母。
      6. 将 Template.pcp 文件重命名为 Msde.pcp。
    2. 通过使用 Msimsp.exe 工具来生成修补文件。您可以使用类似以下示例命令的命令:
      msimsp.exe -s \\MachineA\Share1\Patch\msde.pcp -p \\MachineA\Share1\Patch\Sample.msp -l \\MachineA\Share1\Patch\log.txt -f \\MachineA\Share1\Patch\tmp
      检查 Log.txt 日志文件,确保 Msimsp.exe 工具创建修补程序后没有发生错误。如果 Msimsp.exe 工具成功地创建了修补程序,\\MachineA\Share1\Patch 文件夹中就会存在一个名为 Sample.msp 的文件。
    3. 测试修补文件。通过使用以下示例命令在安装有 Sample.msi 的计算机上应用该修补程序:
      Msiexec.exe /p Sample.msp REINSTALL=ALL REINSTALLMODE=omus /L*v SamplePatch.txt

      检查 SamplePatch.txt 日志文件以确保修补程序安装成功。

      注意REINSTALL=ALL 意味着仅重新安装那些以前已经安装的功能。此外,如果设置 REINSTALL 属性,就必须设置 REINSTALLMODE 属性,以指示将要执行的重新安装类型。
      收起该表格展开该表格
      REINSTALLMODEDESCRIPTION
      o在文件缺失或安装的版本较低时重新安装。
      m重写 Registry 表中所有必需的注册表条目,这些条目位于 KEY_LOCAL_MACHINE 或 HKEY_CLASSES_ROOT 注册表配置单元中。无论计算机或用户分配如何,均重写 Class 表、Verb 表、PublishComponent 表、ProgID 表、MIME 表、Icon 表、Extension 表和 AppID 表中的所有信息。重新安装所有合格的组件。
      u重写 Registry 表中所有必需的注册表条目,这些条目位于 HKEY_CURRENT_USER 或 HKEY_USERS 注册表配置单元中。
      s重新安装所有快捷方式并重新缓存所有覆盖任何现有快捷方式和图标的图标。

属性

文章编号: 314131 - 最后修改: 2007年10月29日 - 修订: 1.2
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
关键字:?
kbproductlink kbhowto kbhowtomaster KB314131
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com