<supportPortability> 元素

通过禁用将程序集视为等效于应用程序可移植性用途的默认行为来指定应用程序可以在两种不同的 .NET Framework 实现中引用同一程序集。

configuration
  runtime
    <assemblyBinding>
      <supportPortability>

语法

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

特性和元素

下列各节描述了特性、子元素和父元素。

特性

属性 说明
PKT 必需的特性。

指定受影响程序集的公钥令牌,以字符串形式表示。
enabled 可选特性。

指定是否应该启用对指定 .NET Framework 程序集实现之间的可移植性支持。

enabled 特性

说明
启用对指定 .NET Framework 程序集实现之间的可移植性支持。 这是默认值。
false 禁用对指定 .NET Framework 程序集实现之间的可移植性支持。 这使应用程序能够引用指定程序集的多个实现。

子元素

无。

父元素

元素 说明
configuration 公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中的根元素。
runtime 包含有关程序集绑定和垃圾回收的信息。
assemblyBinding 包含有关程序集版本重定向和程序集位置的信息。

备注

从 .NET Framework 4 开始,系统会自动为可以使用 .NET Framework 的两个实现之一(例如 .NET Framework 实现或用于 Silverlight 的 .NET Framework 实现)的应用程序提供支持。 程序集绑定器将特定 .NET Framework 程序集的两个实现视为等效。 在少数情况下,此应用程序可移植性功能会导致问题。 在这些情况下,<supportPortability> 元素可用于禁用该功能。

其中一种情况是程序集必须引用特定引用程序集的 .NET Framework 实现和用于 Silverlight 的 .NET Framework 实现。 例如,在 Windows Presentation Foundation (WPF) 中编写的 XAML 设计器可能需要为设计器用户界面引用 WPF 桌面实现以及 Silverlight 实现中包含的 WPF 子集。 默认情况下,单独引用会导致编译器错误,因为程序集绑定将这两个程序集视为等效。 此元素禁用默认行为,并允许编译成功。

重要

为了使编译器将信息传递给公共语言运行时的程序集绑定逻辑,必须使用 /appconfig 编译器选项指定包含此元素的 app.config 文件的位置。

示例

以下示例使应用程序能够同时引用任何 .NET Framework 程序集(同时存在于后述两个实现中)的 .NET Framework 实现和用于 Silverlight 的 .NET Framework 实现。 /appconfig 编译器选项必须用于指定此 app.config 文件的位置。

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

请参阅