狀況
假設您有 Microsoft.NET Framework 4.7 安裝在電腦上。您可能會注意到,在.NET Framework 執行的應用程式不尊重的 AppContext 參數的登錄中指定的相容性設定。在這個案例中,當您嘗試設定登錄選項 AppContext 旗標,它看起來像是 [登錄] 選項中指定的值設為False。
原因
當程式讀取登錄中的 AppContext 參數的值時,就無法擷取的資料。在此情況下,則會假設性的方式有設定指定在登錄中,與False值傳回給應用程式。
解決方案
若要修正這個問題,請使用應用程式組態 (pp.config的) 檔所要的值來設定的旗標。
加入的app.config檔案中的 [ < 執行階段 > ] 區段中的< AppContextSwitchOverrides >項目。這個參數會有單一屬性,也就是值,其值是字串,表示同時包含參數名稱和值的機碼或值組。
若要定義多個參數,分隔 <AppContextSwitchOverrides> 中的每個開關的機碼或值組項目的值屬性,以分號。在此情況下,<AppContextSwitchOverrides> 項目具有下列格式:
XML
<AppContextSwitchOverrides value=”switchName1=value1;switchName2=value2” />
若要定義組態設定中使用< AppContextSwitchOverrides >項目具有應用程式的範圍。也就是說,它會影響應用程式。
由於app.config檔案是特定的應用程式,您必須針對所有受影響的應用程式中將此動作。
如需有關 AppContext 的詳細資訊,請在 Microsoft 開發人員網路 (MSDN) 網站上前往下列主題:
更多的資訊
這個問題以後開始引進的工作,若要啟用以供在 AppDomain 的存留週期的很早期的 AppContext 參數的一部分。這允許會否則會破壞進行安全地,即使使用 AppContext 參數所需的程式碼執行在 AppDomain 讓向上的很早期的變更。
這個問題是關於多少記憶體配置給儲存從登錄中讀取的值。如果不足,無法配置的空間來儲存從登錄中讀取的值,它將會回到預設值,則為 False。
狀態
Microsoft 已確認,這是在 < 適用於=""> 一節所列出的 Microsoft 產品的問題,以及 Microsoft 投入的方案中的產品即將推出的版本。