Manifestos do aplicativo

Um manifesto do aplicativo (também conhecido como manifesto de aplicativo lado a lado ou manifesto de fusão ) é um arquivo XML que descreve e identifica os assemblies lado a lado compartilhados e privados aos quais um aplicativo deve ser associado em tempo de execução. Elas devem ser as mesmas versões de assembly que foram usadas para testar o aplicativo. Os manifestos do aplicativo também podem descrever metadados para arquivos privados do aplicativo.

Para obter uma listagem completa do esquema XML, consulte o esquema de arquivo manifest.

Os manifestos do aplicativo têm os seguintes elementos e atributos.

Elemento Atributos Obrigatório
Assembly Sim
manifestVersion Sim
Noinherit Não
Assemblyidentity Sim
tipo Sim
name Sim
linguagem Não
processorArchitecture Não
version Sim
Publickeytoken Não
compatibilidade Não
Aplicativo Não
supportedOS Id Não
maxversiontested Id Não
Dependência Não
dependentAssembly Não
Arquivo Não
name Não
Hashalg Não
hash Não
activeCodePage Não
autoElevate Não
disableTheming Não
disableWindowFiltering Não
dpiAware Não
dpiAwareness Não
gdiScaling Não
highResolutionScrollingAware Não
longPathAware Não
printerDriverIsolation Não
ultraHighResolutionScrollingAware Não
msix Não
heapType Não

Local do arquivo

Se possível, você deve inserir o manifesto do aplicativo como um recurso no arquivo do .exe aplicativo ou .dll. Se você não puder fazer isso, poderá colocar o arquivo de manifesto do aplicativo no mesmo diretório que o .exe ou .dll.

Para obter mais informações, consulte Instalar assemblies lado a lado.

Nome do arquivo

Por convenção, um manifesto do aplicativo deve ter o mesmo nome que o arquivo executável do aplicativo, com a .manifest extensão acrescentada a ele.

Por exemplo, um manifesto do aplicativo que se refere example.exe ou example.dll deve usar a sintaxe de nome de arquivo a seguir (se a ID do recurso for 1, você poderá omitir o < segmento de ID> do recurso da sintaxe).

example.exe.<ID> do recurso. Manifesto

example.dll.<ID> do recurso. Manifesto

Elementos

Nomes de elementos e atributos diferenciam maiúsculas de minúsculas. Os valores de elementos e atributos não diferenciam maiúsculas de minúsculas, exceto pelo valor do atributo de tipo.

assembly

Um elemento contêiner. Seu primeiro subelemento deve ser um elemento noInherit ou assemblyIdentity . Obrigatórios.

O elemento assembly deve estar no namespace urn:schemas-microsoft-com:asm.v1. Os elementos filho do assembly também devem estar nesse namespace, por herança ou por marcação.

O elemento assembly tem os seguintes atributos.

Atributo Descrição
manifestVersion O atributo manifestVersion deve ser definido como 1.0.

Noinherit

Inclua esse elemento em um manifesto do aplicativo para definir os contextos de ativação gerados do manifesto com o sinalizador "não herdar". Quando esse sinalizador não é definido em um contexto de ativação e o contexto de ativação está ativo, ele é herdado por novos threads no mesmo processo, janelas, procedimentos de janela e Chamadas de Procedimento Assíncronas. Definir esse sinalizador impede que o novo objeto herde o contexto ativo.

O elemento noInherit é opcional e normalmente omitido. A maioria dos assemblies não funciona corretamente usando um contexto de ativação não herdado porque o assembly deve ser explicitamente projetado para gerenciar a propagação de seu próprio contexto de ativação. O uso do elemento noInherit requer que todos os assemblies dependentes referenciados pelo manifesto do aplicativo tenham um elemento noInherit no manifesto do assembly.

Se noInherit for usado em um manifesto, ele deverá ser o primeiro subelemento do elemento assembly . O elemento assemblyIdentity deve vir imediatamente após o elemento noInherit . Se noInherit não for usado, assemblyIdentity deverá ser o primeiro subelemento do elemento assembly . O elemento noInherit não tem elementos filho. Não é um elemento válido nos manifestos do assembly.

assemblyIdentity

Como o primeiro subelemento de um elemento assembly , assemblyIdentity descreve e identifica exclusivamente o aplicativo que possui esse manifesto do aplicativo. Como o primeiro subelemento de um elemento dependentAssembly , assemblyIdentity descreve um assembly lado a lado exigido pelo aplicativo. Observe que cada assembly referenciado no manifesto do aplicativo requer uma assemblyIdentity que corresponde exatamente à entidade assemblyIdentity no manifesto de assembly do próprio assembly referenciado.

O elemento assemblyIdentity tem os atributos a seguir. Ele não tem subelementos.

Atributo Descrição
tipo Especifica o tipo de aplicativo ou assembly. O valor deve ser Win32 e todos em minúsculas inferiores. Obrigatórios.
name Nomeia exclusivamente o aplicativo ou o assembly. Use o seguinte formato para o nome: Organization.Division.Name. Por exemplo, Microsoft. Windows.mysampleApp. Obrigatórios.
linguagem Identifica o idioma do aplicativo ou do assembly. Opcional. Se o aplicativo ou assembly for específico do idioma, especifique o código de linguagem DHTML. Na entidade assemblyIdentity de um aplicativo destinado ao uso mundial (idioma neutro) omita o atributo de idioma.
Em uma assemblyIdentity de um assembly destinado ao uso mundial (idioma neutro) defina o valor da linguagem como "*".
processorArchitecture Especifica o processador. Os valores válidos incluem x86, amd64, arm e arm64. Opcional.
version Especifica a versão do aplicativo ou do assembly. Use o formato de versão de quatro partes: mmmmm.nnnnn.ooooo.ppppp. Cada uma das partes separadas por períodos pode ser 0-65535 inclusive. Para obter mais informações, consulte Versões do Assembly. Obrigatórios.
Publickeytoken Uma cadeia de caracteres hexadecimal de 16 caracteres que representa os últimos 8 bytes do hash SHA-1 da chave pública sob a qual o aplicativo ou assembly está assinado. A chave pública usada para assinar o catálogo deve ter 2048 bits ou mais. Necessário para todos os assemblies lado a lado compartilhados.

compatibilidade

Contém pelo menos um aplicativo. Ele não tem atributos. Opcional. Manifestos de aplicativo sem um elemento de compatibilidade padrão para Windows compatibilidade do Vista no Windows 7.

aplicativo

Contém pelo menos um elemento com suporte doOS . A partir de Windows 10, versão 1903, ele também pode conter um elemento maxversiontested opcional. Ele não tem atributos. Opcional.

supportedOS

O elemento com suporte doOS tem o atributo a seguir. Ele não tem subelementos.

Atributo Descrição
Id Defina o atributo ID como {e2011457-1546-43c5-a5fe-008deee3d3f0} para executar o aplicativo usando a funcionalidade vista. Isso pode permitir que um aplicativo projetado para Windows Vista seja executado em um sistema operacional posterior.
Defina o atributo ID como {35138b9a-5d96-4fbd-8e2d-a2440225f93a} para executar o aplicativo usando Windows 7 funcionalidade.
Os aplicativos compatíveis com Windows funcionalidade vista, Windows 7 e Windows 8 não exigem manifestos separados. Nesse caso, adicione os GUIDs para todos os sistemas operacionais Windows.
Para obter informações sobre o comportamento do atributo de ID em Windows, consulte o Windows 8 e Windows Server 2012 Livro de Receitas de Compatibilidade.
Os seguintes GUIDs correspondem aos sistemas operacionais indicados:
{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a} -> Windows 10, Windows 11, Windows Server 2016, Windows Server 2019 e Windows Server 2022
{1f676c76-80e1-4239-95bb-83d0f6d0da78} -> Windows 8.1 e Windows Server 2012 R2
{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38} -> Windows 8 e Windows Server 2012
{35138b9a-5d96-4fbd-8e2d-a2440225f93a} -> Windows 7 e Windows Server 2008 R2
{e2011457-1546-43c5-a5fe-008deee3d3f0} -> Windows Vista e Windows Server 2008
Você pode testar isso no Windows 7 ou Windows 8.x executando o Resource Monitor (resmon), acessando a guia CPU, clicando com o botão direito do mouse nos rótulos de coluna, "Selecionar Coluna..." e verificar "Contexto do Sistema Operacional". No Windows 8.x, você também pode encontrar essa coluna disponível no Gerenciador de Tarefas (taskmgr). O conteúdo da coluna mostra o valor mais alto encontrado ou "Windows Vista" como o padrão.

maxversiontested

O elemento maxversiontested especifica as versões de Windows que o aplicativo foi testado em relação à versão mínima do sistema operacional compatível com até a versão máxima. O conjunto completo de versões pode ser encontrado aqui. Isso se destina a ser usado por aplicativos de área de trabalho que usam ilhas XAML e que não são implantados em um pacote MSIX. Esse elemento tem suporte em Windows 10, versão 1903 e versões posteriores.

O elemento maxversiontested tem o atributo a seguir. Ele não tem subelementos.

Atributo Descrição
Id Defina o atributo ID como uma cadeia de caracteres de versão de 4 partes que especifica a versão máxima do Windows em que o aplicativo foi testado. Por exemplo, "10.0.18226.0".

dependência

Contém pelo menos um dependAssembly. Ele não tem atributos. Opcional.

dependentAssembly

O primeiro subelemento de dependentAssembly deve ser um elemento assemblyIdentity que descreve um assembly lado a lado exigido pelo aplicativo. Cada dependAssembly deve estar dentro de exatamente uma dependência. Ele não tem atributos.

file

Especifica arquivos que são privados para o aplicativo. Opcional.

O elemento de arquivo tem os atributos mostrados na tabela a seguir.

Atributo Descrição
name Nome do arquivo. Por exemplo, Comctl32.dll.
Hashalg Algoritmo usado para criar um hash do arquivo. Esse valor deve ser SHA1.
hash Um hash do arquivo referenciado pelo nome. Uma cadeia de caracteres hexadecimal de comprimento, dependendo do algoritmo de hash.

activeCodePage

Em Windows 10, esse elemento força um processo a usar UTF-8 como a página de código de processo. Para obter mais informações, consulte Usar a página de código UTF-8. No Windows 10, o único valor válido para activeCodePage é UTF-8.

A partir de Windows 11, esse elemento também permite a seleção da página de código não UTF-8 herdada ou páginas de código para uma localidade específica para compatibilidade do aplicativo herdado. Aplicativos modernos são altamente incentivados a usar Unicode. Em Windows 11, activeCodePage também pode ser definido como o valor Herdado ou um nome de localidade, como en-US ou ja-JP.

  • Em computadores configurados para uma página de código ativo do sistema UTF-8, o Legacy reverterá o processo para as páginas de código de localidade do sistema. Se a localidade do sistema não tiver páginas de código definidas, Windows-1252/437 será usado. A configuração da página de código herdada só tem suporte em manifestos fusion e começa apenas com Windows 11.
  • Quando um nome de localidade como en-US for fornecido, a página de código de processo será definida adequadamente para essa página de código de localidade. Por exemplo, Windows-1252 e 437 para en-US ou 932 para ja-JP.

Esse elemento foi adicionado pela primeira vez no Windows 10 versão 1903 (Atualização de maio de 2019). Você pode declarar essa propriedade e destino/executar em builds de Windows anteriores, mas você deve lidar com a detecção e a conversão da página de código herdada como de costume. Esse elemento não tem atributos.

O exemplo a seguir demonstra como usar esse elemento para forçar o processo atual a usar UTF-8 como a página de código de processo.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings"> 
      <activeCodePage>UTF-8</activeCodePage> 
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

autoElevate

Especifica se a elevação automática está habilitada. TRUE indica que ele está habilitado. Ele não tem atributos.

disableTheming

Especifica se dar aos elementos da interface do usuário um tema está desabilitado. TRUE indica desabilitado. Ele não tem atributos.

disableWindowFiltering

Especifica se a filtragem de janela deve ser desabilitada. TRUE desabilita a filtragem de janela para que você possa enumerar janelas imersivas da área de trabalho. disableWindowFiltering foi adicionado em Windows 8 e não tem atributos.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">
      <disableWindowFiltering>true</disableWindowFiltering>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

dpiAware

Especifica se o processo atual está ciente de pontos por polegada (dpi).

Windows 10, versão 1607: o elemento dpiAware será ignorado se o elemento dpiAwareness estiver presente. Você pode incluir ambos os elementos em um manifesto se quiser especificar um comportamento diferente para Windows 10, versão 1607 do que para uma versão anterior do sistema operacional.

A tabela a seguir descreve o comportamento que resulta com base na presença do elemento dpiAware e do texto que ele contém. O texto dentro do elemento não diferencia maiúsculas de minúsculas.

Estado do elemento dpiAware Descrição
Absent O processo atual não tem conhecimento do DPI por padrão. Você pode alterar essa configuração programaticamente chamando a função SetProcessDpiAwareness ou SetProcessDPIAware .
Contém "true" O processo atual tem reconhecimento de dpi do sistema.
Contém "false" Windows Vista, Windows 7 e Windows 8: o comportamento é o mesmo de quando o dpiAware está ausente.
Windows 8.1 e Windows 10: o processo atual não tem conhecimento do dpi e você não pode alterar essa configuração programaticamente chamando a função SetProcessDpiAwareness ou SetProcessDPIAware.
Contém "true/pm" Windows Vista, Windows 7 e Windows 8: o processo atual está ciente do sistema dpi.
Windows 8.1 e Windows 10: o processo atual está ciente do DPI por monitor.
Contém "por monitor" Windows Vista, Windows 7 e Windows 8: o comportamento é o mesmo de quando o dpiAware está ausente.
Windows 8.1 e Windows 10: o processo atual está ciente do DPI por monitor.
Contém qualquer outra cadeia de caracteres Windows Vista, Windows 7 e Windows 8: o comportamento é o mesmo de quando o dpiAware está ausente.
Windows 8.1 e Windows 10: o processo atual não tem conhecimento do dpi e você não pode alterar essa configuração programaticamente chamando a função SetProcessDpiAwareness ou SetProcessDPIAware.

Para obter mais informações sobre as configurações de conscientização de dpi, consulte Comparação de níveis de conscientização de DPI.

dpiAware não tem atributos.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

dpiAwareness

Especifica se o processo atual está ciente de pontos por polegada (dpi).

A versão mínima do sistema operacional que dá suporte ao elemento dpiAwareness é Windows 10, versão 1607. Para versões compatíveis com o elemento dpiAwareness , o dpiAwareness substitui o elemento dpiAware . Você pode incluir ambos os elementos em um manifesto se quiser especificar um comportamento diferente para Windows 10, versão 1607 do que para uma versão anterior do sistema operacional.

O elemento dpiAwareness pode conter um único item ou uma lista de itens separados por vírgula. No último caso, o primeiro item (mais à esquerda) na lista reconhecida pelo sistema operacional é usado. Dessa forma, você pode especificar comportamentos diferentes com suporte em versões futuras do sistema operacional Windows.

A tabela a seguir descreve o comportamento que resulta com base na presença do elemento dpiAwareness e no texto que ele contém em seu item mais à esquerda reconhecido. O texto dentro do elemento não diferencia maiúsculas de minúsculas.

Status do elemento dpiAwareness: Descrição
O elemento está ausente O elemento dpiAware especifica se o processo está ciente do dpi.
Não contém itens reconhecidos O processo atual não tem conhecimento do DPI por padrão. Você pode alterar essa configuração programaticamente chamando a função SetProcessDpiAwareness ou SetProcessDPIAware .
O primeiro item reconhecido é "sistema" O processo atual tem reconhecimento de dpi do sistema.
O primeiro item reconhecido é "permonitor" O processo atual está ciente da DPI por monitor.
O primeiro item reconhecido é "permonitorv2" O processo atual usa o contexto de reconhecimento de dpi por monitor-v2. Este item só será reconhecido no Windows 10 versão 1703 ou posterior.
O primeiro item reconhecido "desconhece" O processo atual não tem conhecimento do DPI. Nãoé possível alterar essa configuração programaticamente chamando a função SetProcessDpiAwareness ou SetProcessDPIAware .

Para obter mais informações sobre as configurações de reconhecimento de dpi compatíveis com esse elemento, consulte DPI_AWARENESS e DPI_AWARENESS_CONTEXT.

dpiAwareness não tem atributos.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
      <dpiAwareness>PerMonitorV2, unaware</dpiAwareness>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

gdiScaling

Especifica se o dimensionamento de GDI está habilitado. A versão mínima do sistema operacional que dá suporte ao elemento gdiScaling é Windows 10 versão 1703.

A estrutura GDI (interface do dispositivo gráfico) pode aplicar o dimensionamento de DPI a primitivos e texto em uma base por monitor sem atualizações para o próprio aplicativo. Isso pode ser útil para aplicativos GDI que não estão mais sendo atualizados ativamente.

Gráficos não vetoriais (como bitmaps, ícones ou barras de ferramentas) não podem ser dimensionados por esse elemento. Além disso, gráficos e texto que aparecem em bitmaps construídos dinamicamente por aplicativos também não podem ser dimensionados por esse elemento.

TRUE indica que esse elemento está habilitado. Ele não tem atributos.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">
      <gdiScaling>true</gdiScaling>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

highResolutionScrollingAware

Especifica se o reconhecimento de rolagem de alta resolução está habilitado. TRUE indica que ele está habilitado. Ele não tem atributos.

longPathAware

Habilita caminhos longos que excedem MAX_PATH de comprimento. Esse elemento tem suporte no Windows 10, versão 1607 e posterior. Para obter mais informações, consulte este artigo.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
      <ws2:longPathAware>true</ws2:longPathAware>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

printerDriverIsolation

Especifica se o isolamento do driver da impressora está habilitado. TRUE indica que ele está habilitado. Ele não tem atributos. O isolamento do driver de impressora melhora a confiabilidade do serviço de impressão Windows permitindo que os drivers de impressora sejam executados em processos separados do processo em que o spooler de impressão é executado. Suporte para o isolamento do driver de impressora iniciado no Windows 7 e no Windows Server 2008 R2. Um aplicativo pode declarar o isolamento do driver de impressora em seu manifesto de aplicativo para se isolar do driver da impressora e melhorar sua confiabilidade. Ou seja, o aplicativo não falhará se o driver da impressora tiver um erro.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">
      <printerDriverIsolation>true</printerDriverIsolation>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

ultraHighResolutionScrollingAware

Especifica se o reconhecimento de rolagem de alta resolução está habilitado. TRUE indica que ele está habilitado. Ele não tem atributos.

MSIX

Especifica as informações de identidade de um pacote MSIX esparso para o aplicativo atual. Esse elemento tem suporte em Windows 10, versão 2004 e versões posteriores.

O elemento msix deve estar no namespace urn:schemas-microsoft-com:msix.v1. Ele tem os atributos mostrados na tabela a seguir.

Atributo Descrição
Publicador Descreve as informações do editor. Esse valor deve corresponder ao atributo Publisher no elemento Identity no manifesto do pacote esparso.
packageName Descreve o conteúdo do pacote. Esse valor deve corresponder ao atributo Name no elemento Identity no manifesto do pacote esparso.
applicationId O identificador exclusivo do aplicativo. Esse valor deve corresponder ao atributo ID no elemento Application no manifesto do pacote esparso.
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity version="1.0.0.0" name="Contoso.PhotoStoreApp"/>
  <msix xmlns="urn:schemas-microsoft-com:msix.v1"
          publisher="CN=Contoso"
          packageName="ContosoPhotoStore"
          applicationId="ContosoPhotoStore"
        />
</assembly>

heapType

Substitui a implementação de heap padrão para as APIs de heap do Win32 a serem usadas.

  • O valor SegmentHeap indica que o heap de segmento será usado. O heap de segmento é uma implementação de heap moderna que geralmente reduzirá o uso geral da memória. Esse elemento tem suporte no Windows 10, versão 2004 (build 19041) e posterior.
  • Todos os outros valores são ignorados.

Esse elemento não tem atributos.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">
      <heapType>SegmentHeap</heapType>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

Exemplo

Veja a seguir um exemplo de um manifesto de aplicativo para um aplicativo chamado MySampleApp.exe. O aplicativo consome o assembly lado a lado sampleAssembly.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
      <application> 
        <!--This Id value indicates the application supports Windows Vista functionality -->
          <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> 
        <!--This Id value indicates the application supports Windows 7 functionality-->
          <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
        <!--This Id value indicates the application supports Windows 8 functionality-->
          <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
        <!--This Id value indicates the application supports Windows 8.1 functionality-->
          <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
      </application> 
  </compatibility>

  <assemblyIdentity type="win32" 
                    name="myOrganization.myDivision.mySampleApp" 
                    version="6.0.0.0" 
                    processorArchitecture="x86" 
                    publicKeyToken="0000000000000000"
  />
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" 
                        name="Proseware.Research.SampleAssembly" 
                        version="6.0.0.0" 
                        processorArchitecture="X86" 
                        publicKeyToken="0000000000000000" 
                        language="*"
      />
    </dependentAssembly>
  </dependency>
</assembly>