使用并行程序集

使用以下过程开发新应用程序或更新现有应用程序,以使用 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"

    或者,可以将单独的清单文件放在与应用程序的可执行文件相同的目录中。 操作系统首先从文件系统加载清单,然后检查可执行文件的 resource 节。 文件系统版本优先。

  6. 共享程序集应该使用安装程序 2.0 Windows安装。 根据如何在 Windows Windows XP 上安装Win32程序集进行并行共享?中所述,创作一个 Windows 安装程序包。

  7. 可以使用安装程序2.0 Windows安装专用程序集。 根据如何在 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>