Elemento <supportPortability>

Especifica que um aplicativo pode fazer referência ao mesmo assembly em duas implementações diferentes do .NET Framework, desabilitando o comportamento padrão que trata os assemblies como equivalentes para fins de portabilidade do aplicativo.

<configuração>
  <runtime>
    <assemblyBinding>
      <supportPortability>

Syntax

<supportPortability PKT="public_key_token" enabled="true|false"/>  

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
PKT Atributo obrigatório.

Especifica o token de chave pública do assembly afetado, como uma cadeia de caracteres.
Habilitado Atributo opcional.

Especifica se o suporte para portabilidade entre implementações do assembly do .NET Framework especificado deve ser habilitado.

Atributo habilitado

Valor Descrição
true Habilitar o suporte para portabilidade entre implementações do assembly do .NET Framework especificado. Esse é o padrão.
false Desabilitar o suporte para portabilidade entre implementações do assembly do .NET Framework especificado. Isso permite que o aplicativo tenha referências a várias implementações do assembly especificado.

Elementos filho

Nenhum.

Elementos pai

Elemento Descrição
configuration O elemento raiz em cada arquivo de configuração usado pelos aplicativos do Common Language Runtime e .NET Framework.
runtime Contém informações sobre associação do assembly e coleta de lixo.
assemblyBinding Contém informações sobre o redirecionamento de versão e os locais dos assemblies.

Comentários

A partir do .NET Framework 4, o suporte é fornecido automaticamente para aplicativos que podem usar uma das duas implementações do .NET Framework, por exemplo, a implementação de .NET Framework ou o .NET Framework para implementação do Silverlight. As duas implementações de um assembly do .NET Framework específico são vistas como equivalentes pelo associador de assembly. Em alguns cenários, esse recurso de portabilidade do aplicativo causa problemas. Nesses cenários, o elemento <supportPortability> pode ser usado para desabilitar o recurso.

Um desses cenários é um assembly que precisa referenciar a implementação do .NET Framework e a implementação do .NET Framework para Silverlight de um assembly de referência específico. Por exemplo, um designer XAML escrito no Windows Presentation Foundation (WPF) pode precisar fazer referência à implementação da área de trabalho do WPF, para a interface do usuário do designer e ao subconjunto do WPF incluído na implementação do Silverlight. Por padrão, as referências separadas causam um erro do compilador, pois a associação de assembly considera os dois assemblies equivalentes. Esse elemento desabilita o comportamento padrão e permite que a compilação tenha êxito.

Importante

Para que o compilador passe as informações para a lógica de associação de assembly do Common Language Runtime, você deverá usar a opção do compilador /appconfig para especificar o local do arquivo app.config que contém esse elemento.

Exemplo

O exemplo a seguir habilita um aplicativo a referenciar as implementações do .NET Framework e do .NET Framework para Silverlight de qualquer assembly do .NET Framework que exista em ambas as implementações. A opção do compilador /appconfig deve ser usada para especificar o local desse arquivo app.config.

<configuration>  
   <runtime>  
      <assemblyBinding>  
         <supportPortability PKT="7cec85d7bea7798e" enable="false"/>  
         <supportPortability PKT="31bf3856ad364e35" enable="false"/>  
      </assemblyBinding>  
   </runtime>  
</configuration>  

Confira também