使用并行程序集

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

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

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

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

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

  4. 如果程序集包含任何依赖程序集,请在应用程序清单的相应 REF 上下文 assemblyIdentity 子元素中输入属性值。 有关 REF 上下文 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 安装共享程序集。 按照如何在 Windows XP 上安装 Win32 并行共享的 Win32 程序集?中所述创作Windows安装程序包。

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

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

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

应用程序清单示例

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

<?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>