Anwendungsspezifische Konfiguration unter Windows XP

Unter Windows XP überschreibt die Konfiguration pro Anwendung sowohl die Standardkonfiguration als auch die Herausgeberkonfiguration pro Anwendung. Dadurch wird die Abhängigkeit einer bestimmten Anwendung von einer Version einer parallelen Assembly zu einer anderen angegebenen Version der Assembly umgeleitet.

Hinweis

Ab Windows Server 2003 überschreibt die Konfiguration pro Anwendung die Herausgeberkonfiguration nur dann pro Anwendung, wenn die Anwendungskonfigurationsdateiapply="no" in publisherPolicy angibt und ein entsprechender Eintrag in der Anwendungskompatibilitätsdatenbank vorhanden ist. Die Konfiguration pro Anwendung setzt immer die Standardkonfiguration außer Kraft. Weitere Informationen finden Sie unter Konfiguration pro Anwendung.

 

Eine Konfiguration pro Anwendung kann erforderlich werden, wenn für den korrekten Betrieb einer bestimmten Anwendung eine Assemblyversion erforderlich ist, die sich von der normalerweise als Standard- oder Herausgeberkonfiguration angegebenen Version unterscheidet. Beispielsweise kann ein globales Update der Assemblyversion durch den Herausgeber die Assembly korrigieren, aber diese bestimmte Anwendung unterbrechen. In diesem Fall kann die Konfiguration pro Anwendung verwendet werden, damit die Anwendung weiterhin mit der vorherigen Assemblyversion ausgeführt werden kann. Ein anderes Beispiel: Eine Service Pack-Installation, die ein Assemblyupdate enthält, kann die Verlegerkonfiguration verwenden, um die Abhängigkeiten aller Anwendungen und Assemblys vom System von Version 1.0.0.0 auf 1.0.1.0 umzuleiten. Wenn es eine Anwendung gibt, für die Version 1.0.0.0 für die ordnungsgemäße Ausführung erforderlich ist, kann sie mithilfe der anwendungsspezifischen Konfiguration zur Version 1.0.0.0 umgeleitet werden.

Anwendungsadministratoren können eine anwendungsspezifische Konfiguration implementieren, indem sie Anwendungskonfigurationsdateien erstellen und installieren. Diese leiten eine bestimmte Anwendung von der Abhängigkeit von einer Version einer parallelen Assembly zur Abhängigkeit von einer anderen Version um. Anwendungskonfigurationsdateien können Herausgeberkonfigurationsdateien und die Standardkonfiguration überschreiben, die von Anwendungsmanifesten und Assemblymanifesten angegeben wird. Die Anwendungskonfigurationsdatei enthält Informationen, die vom Ladeprogramm beim Aufruf von CreateProcess verwendet werden.

Um eine Anwendung zu konfigurieren, um sowohl das Anwendungsmanifest als auch die Herausgeberkonfiguration außer Kraft zu setzen, muss ein Entwickler eine Anwendungskonfigurationsdatei erstellen. Die Anwendungskonfigurationsdatei wird dann bereitgestellt und im selben Ordner wie die ausführbare Datei der Anwendung installiert. Eine Auflistung des Dateischemas finden Sie unter Anwendungskonfigurationsdateischema.

Beachten Sie, dass ihre Anwendung, wenn sie anwendungsspezifische Konfiguration verwendet, keine wichtigen Sicherheitsfixes oder Fehlerkorrekturen erhält, die der Herausgeber der Assembly als Herausgeberkonfigurationsdateien ausgeben kann. Eine Anwendung, die anwendungsspezifische Konfiguration verwendet, kann daher unsicher bleiben oder auch dann nicht ordnungsgemäß funktionieren, wenn eine neue Assembly mit diesen Fixes auf das System angewendet wurde. Aus diesem Grund sollten Anwendungsentwickler niemals eine Anwendung mit einer anwendungsspezifischen Konfiguration ausliefern. Die Konfiguration pro Anwendung sollte nur von Unternehmensadministratoren als temporärer Fix verwendet werden, wenn die Anwendung durch eine Herausgeberkonfiguration unterbrochen wird. In diesem Fall besteht die dauerhafte Lösung darin, dass die Entwickler der Assembly und die Entwickler der Anwendung zusammenarbeiten müssen, um sicherzustellen, dass die Assemblys mit Herausgeberkonfiguration vollständig abwärtskompatibel sind.

Es folgt ein Beispiel für eine Anwendungskonfigurationsdatei. Weitere Informationen finden Sie unter Anwendungskonfigurationsdateien.

<?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>