共用方式為


Windows XP 上的個別應用程式組態

在 Windows XP 上,每個應用程式組態會以每個應用程式為基礎覆寫 預設組態發行者組態 。 這會將特定應用程式的相依性從一個並存元件版本重新導向至另一個指定的元件版本。

注意

從 Windows Server 2003 開始,每個應用程式組態只有在應用程式組態檔publisherPolicy中指定apply=「no」且應用程式相容性資料庫中有對應的專案時,才會以個別應用程式為基礎覆寫發行者組態。 每個應用程式組態一律會覆寫 預設組態。 如需詳細資訊,請參閱 個別應用程式組態

 

如果特定應用程式的正確作業需要與通常指定為預設或發行者設定的版本不同的元件版本,則個別應用程式組態可能會變得必要。 例如,發行者對元件版本的全域更新可能會修正元件,但中斷此特定應用程式。 在此情況下,個別應用程式組態可能會用來讓應用程式繼續使用先前的元件版本執行。 另一個範例是,包含元件更新的 Service Pack 安裝可能會使用 發行者組態 ,將系統上所有應用程式和元件的相依性從 1.0.0.0 重新導向至 1.0.1.0。 如果有應用程式需要 1.0.0.0 版才能正常運作,則可以使用個別應用程式組態將它重新導向至 1.0.0.0 版。

應用程式管理員可以藉由撰寫及安裝 應用程式組態檔來實作個別應用程式組態。 這些會將特定應用程式從一個並存元件的相依性重新導向到另一個版本的相依性。 應用程式組態 檔可以覆寫 發行者組態檔應用程式資訊清單元件資訊清單所指定的預設組態。 應用程式組態檔包含呼叫 CreateProcess 時載入器所使用的資訊。

若要設定應用程式以覆寫應用程式資訊清單和發行者組態,開發人員必須撰寫應用程式組態檔。 然後,應用程式組態檔會部署並安裝到與應用程式可執行檔相同的資料夾中。 如需檔案架構的清單,請參閱 應用程式組態檔架構

請注意,如果您的應用程式使用個別應用程式組態,它將不會收到任何重要的安全性修正或錯誤修正,元件發行者可能會發出發行者組態檔。 因此,使用個別應用程式組態的應用程式可能會保持不安全,或即使在套用這些修正的新元件套用至系統之後,仍無法正確運作。 基於這個理由,應用程式開發人員絕不應該隨附每個應用程式組態的應用程式。 只有在發行者設定中斷應用程式時,公司系統管理員才應該使用個別應用程式組態作為暫時修正。 在此情況下,永久解決方案是元件開發人員和應用程式的開發人員必須一起運作,以確保具有發行者設定的元件完全回溯相容。

以下是應用程式組態檔的範例。 如需詳細資訊,請參閱 應用程式組態檔

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
  <windows>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <assemblyIdentity 
          name="Microsoft.Windows.mysampleApp" 
          processorArchitecture="x86" 
          version="1.0.0.0" type="win32"/>
        <dependentAssembly>
          <assemblyIdentity type="win32" 
              name="Microsoft.Windows.SampleAssembly" 
              processorArchitecture="x86" 
              publicKeyToken="0000000000000000"/>
          <bindingRedirect 
              oldVersion="2.0.0.0" 
              newVersion="2.0.1.0"/>
        </dependentAssembly>
    </assemblyBinding>
   </windows>
</configuration>