Usando assemblies lado a lado

Use o procedimento a seguir para desenvolver um novo aplicativo ou atualizar um aplicativo existente para usar os assemblies lado a lado disponíveis da Microsoft ou de outros editores de assembly lado a lado. Para obter uma lista dos assemblies lado a lado atualmente fornecidos pela Microsoft, consulte Assemblies lado a lado da Microsoft com suporte. Observe que o aplicativo deve ser executado em pelo menos Windows XP para instalar os assemblies como assemblies lado a lado. Para obter mais informações, consulte Diretrizes para criar assemblies lado a lado.

Para adicionar um assembly lado a lado a um aplicativo

  1. Identifique os assemblies lado a lado exigidos pelo aplicativo. Começando com Windows XP, esses assemblies lado a lado e seus manifestos de assembly são instalados com o sistema operacional, mas não estão registrados globalmente.

  2. Use um editor XML para criar um manifesto do aplicativo. Veja o manifesto do aplicativo de exemplo abaixo. Para obter mais informações, consulte manifestos de aplicativo na Referência de Arquivos de Manifesto.

  3. Insira valores de atributo no subelemento assemblyIdentity de contexto DEF do manifesto do aplicativo que define exclusivamente o aplicativo. Para obter mais informações sobre a entidade assemblyIdentity de contexto DEF, consulte Manifestos de Aplicativo.

  4. Se o assembly contiver assemblies dependentes, insira valores de atributo nos subelementos assemblyIdentity de contexto REF correspondentes do manifesto do aplicativo. Para obter mais informações sobre a assemblyIdentity de contexto REF, consulte Manifestos de Aplicativo.

    <dependentAssembly>
      <assemblyIdentity type="win32"
                        name="Microsoft.Windows.SampleAssembly"
                        version="6.0.0.0" processorArchitecture="x86"
                        publicKeyToken="a5aaf5ba15723d5"/>
    
  5. Você pode incluir o manifesto do aplicativo no arquivo de cabeçalho executável binário do aplicativo.

    Nesse caso, adicione também a seguinte linha ao arquivo de cabeçalho do aplicativo:

    CREATEPROCESS\_MANIFEST\_RESOURCE\_ID RT\_MANIFEST "YourApp.exe.manifest"

    Como alternativa, você pode colocar um arquivo de manifesto separado no mesmo diretório que o arquivo executável do aplicativo. O sistema operacional carrega primeiro o manifesto do sistema de arquivos e verifica a seção de recursos do executável. A versão do sistema de arquivos tem precedência.

  6. Os assemblies compartilhados devem ser instalados usando o Windows Installer versão 2.0. Crie um pacote Windows Installer conforme descrito em How Do I Install Win32 Assemblies for Side-by-side Sharing on Windows XP?.

  7. Assemblies privados podem ser instalados usando o Windows Installer versão 2.0. Crie um pacote Windows Installer conforme descrito em How Do I Install Win32 Assemblies for the Private Use of an Application on Windows XP?. Você também pode usar qualquer outro instalador para copiar um assembly privado e seu manifesto na mesma pasta que o arquivo executável do aplicativo.

  8. Teste seu aplicativo para garantir os resultados. Observe que o computador de teste não deve ter o assembly lado a lado registrado.

  9. Implante seu aplicativo ou atualize como um pacote Windows Installer.

Manifesto do aplicativo de exemplo

Veja a seguir um exemplo de um manifesto do aplicativo:

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