<supportPortability> 元素

指定应用程序可以在 .NET Framework 的两个不同实现中引用同一个程序集,方法为禁用默认行为,该默认行为因应用程序优先级目的将程序集处理为等同物。

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

特性和元素

以下几节描述了属性、子元素和父元素。

特性

特性

说明

PKT

必选特性。

指定受影响程序集的公钥标记,形式为字符串。

enabled

可选特性。

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

enabled 特性

说明

true

启用对指定的 .NET Framework 程序集实现之间的可移植性的支持。 这是默认值。

false

禁用对指定的 .NET Framework 程序集实现之间的可移植性的支持。 这使应用程序具有指定的程序集的多个实现的引用。

子元素

无。

父元素

元素

说明

configuration

公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中的根元素。

runtime

包含有关程序集绑定和垃圾回收的信息。

assemblyBinding

包含有关程序集版本重定向和程序集位置的信息。

备注

从 .NET Framework 4 版 开始,将自动为应用程序提供支持,使其可以使用两个 .NET Framework 实现之一,如 .NET Framework 实现或 .NET Framework for Silverlight 实现。 特定的 .NET Framework 的两个实现都由程序集联编程序视为等同。 在几个方案中,此应用程序的可移植性功能会产生问题。 在这些方案中 <supportPortability> 元素可用于禁用此功能。

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

重要说明重要事项

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

示例

下面的示例使应用程序可以具有对任何 .NET Framework 程序集的 .NET Framework 实现和 .NET Framework for Silverlight 实现的引用,该程序集存在于两个实现中。 /appconfig 编译器选项必须用于指定此 app.config 文件的位置。

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

请参见

概念

.NET Framework 程序集统一概述

其他资源

/appconfig(C# 编译器选项)