使用并行程序集

使用以下过程开发新应用程序或更新现有应用程序,以使用 Microsoft 或其他并行程序集发布者提供的并行 程序集 。 有关 Microsoft 当前提供的并行程序集的列表,请参阅 支持的 Microsoft 并行程序集。 请注意,应用程序必须在至少 Windows XP 上运行,才能将程序集安装为并行程序集。 有关详细信息,请参阅 创建并行程序集的指南

将并行程序集添加到应用程序

  1. 确定应用程序所需的并行程序集。 从 Windows XP 开始,这些并行程序集及其程序集清单随操作系统一起安装,但不全局注册。

  2. 使用 XML 编辑器创建 应用程序清单。 请参阅下面的示例应用程序清单。 有关详细信息,请参阅清单文件参考中的应用程序清单。

  3. 在唯一定义应用程序的应用程序清单的 DEF-context assemblyIdentity 子元素中输入属性值。 有关 DEF-context assemblyIdentity 的详细信息,请参阅 应用程序清单

  4. 如果程序集包含任何依赖程序集,请在应用程序清单的相应 REF-context assemblyIdentity 子元素中输入属性值。 有关 REF-context assemblyIdentity 的详细信息,请参阅 应用程序清单

    <dependentAssembly>
      <assemblyIdentity type="win32"
                        name="Microsoft.Windows.SampleAssembly"
                        version="6.0.0.0" processorArchitecture="x86"
                        publicKeyToken="a5aaf5ba15723d5"/>
    
  5. 可以在应用程序的二进制可执行头文件中包含应用程序清单。

    在这种情况下,还要将以下行添加到应用程序头文件:

    CREATEPROCESS\_MANIFEST\_RESOURCE\_ID RT\_MANIFEST“YourApp.exe.manifest”

    或者,可以将单独的清单文件放置在应用程序的可执行文件所在的同一目录中。 操作系统首先从文件系统加载清单,然后检查可执行文件的资源部分。 文件系统版本优先。

  6. 应使用 Windows Installer 2.0 版安装共享程序集。 按照 如何安装 Win32 程序集以便在 Windows XP 上并行共享?中所述创作 Windows Installer 包。

  7. 可以使用 Windows Installer 2.0 版安装专用程序集。 按照 如何在 Windows XP 上安装 Win32 程序集以用于应用程序专用?中所述创作 Windows Installer 包。 还可以使用任何其他安装程序将专用程序集及其清单复制到应用程序的可执行文件所在的文件夹中。

  8. 测试应用程序以确保结果。 请注意,测试计算机不应注册并行程序集。

  9. 将应用程序或更新部署为 Windows Installer 包。

示例应用程序清单

下面是应用程序清单的示例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32" name="Microsoft.Windows.mysampleapp" version="1.0.0.0" processorArchitecture="x86"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="a5aaf5ba15723d5"/>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Tools.MyPrivateDll" version="2.5.0.0" processorArchitecture="x86"/>
    </dependentAssembly>
  </dependency>
</assembly>