規定應用程式可在兩個不同的 .NET Framework 實作中引用相同的組合語言,方法是關閉預設行為,將這些組件視為等價,以提升應用程式可攜性。
<configuration>
<runtime>
<assemblyBinding>
<supportPortability>
語法
<supportPortability PKT="public_key_token" enabled="true|false"/>
屬性和項目
下列章節說明屬性、子元素和父元素。
Attributes
| Attribute | Description |
|---|---|
| PKT | 必要屬性。 指定受影響組合的公鑰標記,作為字串。 |
| enabled | 選擇性屬性。 規定是否應啟用 .NET Framework 組合間可攜性的支援。 |
啟用屬性
| 價值觀 | Description |
|---|---|
| true | 啟用 .NET Framework 組合間實作間的可攜性支援。 這是預設值。 |
| 假的 | 關閉對指定 .NET Framework 組合間實作間可攜性的支援。 這使得應用程式能夠參考指定組裝的多個實作。 |
子元素
沒有。
父項目
| 元素 | Description |
|---|---|
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 Desktop 的使用者介面實作,以及 Silverlight 實作中包含的 WPF 子集。 根據預設,不同的參考會導致編譯器錯誤,因為組件繫結關係會將兩個組件視為對等項目。 此元素會停用預設行為,並允許編譯成功。
這很重要
為了讓編譯器將資訊傳遞給通用語言執行時的組合語言綁定邏輯,你必須使用 /appconfig 編譯器選項指定包含此元素的 app.config 檔案位置。
Example
以下範例允許應用程式同時引用任何存在於兩個實作中的 .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>