個別應用程式組態
個別應用程式組態會將特定應用程式的相依性從一個並存元件版本重新導向至另一個版本的元件。 如果特定應用程式的正確作業需要不同于通常指定為 預設組態 或 發行者組態之版本的元件版本,則個別應用程式組態可能會變得必要。 例如,發行者對元件版本的全域更新可能會修正元件,但中斷此特定應用程式。 在此情況下,可能會使用個別應用程式組態來讓應用程式繼續使用舊版元件執行。
從 Windows Server 2003 開始,每個應用程式組態一律會以個別應用程式為基礎覆寫 預設組態 。 只有在應用程式組態檔指定publisherPolicy中的apply=「no」且應用程式相容性資料庫中有對應的專案時,個別應用程式組態才會覆寫個別應用程式的發行者組態。
注意
在 Windows XP 上,個別應用程式組態會以個別應用程式為基礎覆寫 預設組態 和 發行者組態 。 如需詳細資訊,請參閱 Windows XP 上的個別應用程式設定。
從 Windows Server 2003 開始,如果應用程式組態檔在publisherPolicy中指定apply=「yes」 ,且針對應用程式相容性資料庫中的應用程式設定 EnableAppConfig 旗標,則個別應用程式組態將會覆寫發行者設定。 使用個別應用程式組態覆寫發行者設定的功能,可讓應用程式在 Safemode 中執行。 如需應用程式相容性資料庫和 Safemode 的詳細資訊,請參閱 Windows 應用程式相容性工具組。 您可以從 取得 Windows 應用程式相容性工具組 https://www.microsoft.com/downloads 。
注意
如果您在publisherPolicy中隨附應用程式組態檔 (.config 檔案) 指定apply=「no」的元件,這會導致啟用內容產生失敗。 如果您在publisherPolicy中隨附指定apply=「yes」的.config檔案隨附元件,則會忽略個別應用程式組態。
應用程式管理員可以藉由撰寫及安裝應用程式組態檔及更新應用程式相容性資料庫,來實作個別應用程式組態。 然後,應用程式組態檔應該會部署並安裝到與應用程式可執行檔相同的資料夾中。 如需檔案架構的清單,請參閱 應用程式組態檔架構。 應用程式相容性資料庫必須散發,如應用程式相容性工具組中所述。
注意
如果您的應用程式以 Safemode 執行,它將不會收到任何重要的安全性修正或錯誤修正,元件發行者可能會以發行者組態檔的形式發出。 因此,使用個別應用程式組態的應用程式可能會保持不安全,或即使在套用這些修正的新元件套用至系統之後,仍無法正常運作。 基於這個理由,應用程式開發人員絕對不應該隨附具有個別應用程式組態的應用程式。 當應用程式因發行者設定中斷時,只有公司系統管理員才應該使用個別應用程式組態作為暫時修正。 在此情況下,永久解決方案是元件的開發人員和應用程式的開發人員必須一起合作,以確保具有發行者組態的元件完全回溯相容。
以下是應用程式組態檔的範例。 如需詳細資訊,請參閱應用程式組態檔。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<windows>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>
<publisherPolicy apply="no"/>
<dependentAssembly>
<assemblyIdentity type="win32" processorArchitecture="x86" name="Microsoft.Windows.SampleAssembly" publicKeyToken="0000000000000000"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</windows>
</configuration>
應用程式管理員應該將必要的專案新增至應用程式相容性資料庫。 從 https://www.microsoft.com/downloads 下載並安裝 Windows 應用程式相容性工具組 2.6。 使用工具組中所述的相容性系統管理員,建立新的自訂或更新現有的資料庫。 您想要為應用程式的相容性層選擇的相容性修正為 EnableAppConfig。 安裝新的相容性資料庫之前,您一律必須測試應用程式。