Dela via


Konfiguration per program i Windows XP

I Windows XP åsidosätter konfiguration per program både standardkonfiguration och utgivarkonfiguration per program. Detta omdirigerar beroendet av ett specifikt program från en version av en sida vid sida-sammansättning till en annan angiven version av sammansättningen.

Not

Från och med Windows Server 2003 åsidosätter konfiguration per program utgivarkonfiguration per program endast om programkonfigurationsfilen anger apply="no" i publisherPolicy och det finns en motsvarande post i databasen Programkompatibilitet. Konfiguration per program åsidosätter alltid standardkonfiguration. Mer information finns i konfiguration per program.

 

En konfiguration per program kan bli nödvändig om rätt åtgärd för ett visst program kräver en sammansättningsversion som skiljer sig från den version som normalt anges som standard- eller utgivarkonfiguration. En global uppdatering av sammansättningsversionen av utgivaren kan till exempel åtgärda sammansättningen men bryta det här programmet. I det här fallet kan konfiguration per program användas för att göra det möjligt för programmet att fortsätta köras med den tidigare sammansättningsversionen. Ett annat exempel är att en service pack-installation som innehåller en sammansättningsuppdatering kan använda utgivarkonfiguration för att omdirigera beroenden för alla program och sammansättningar i systemet från version 1.0.0.0 till 1.0.1.0. Om det finns ett program som kräver att version 1.0.0.0 fungerar korrekt kan det omdirigeras till version 1.0.0.0 med hjälp av konfiguration per program.

Programadministratörer kan implementera en konfiguration per program genom att redigera och installera programkonfigurationsfiler. Dessa omdirigerar ett specifikt program från beroende av en version av en sida vid sida-sammansättning till beroende av en annan version. Programkonfiguration filer kan åsidosätta konfigurationsfiler för utgivare och standardkonfigurationen som anges av programmanifest och sammansättningsmanifest. Programkonfigurationsfilen innehåller information som används av inläsaren när CreateProcess- anropas.

Om du vill konfigurera ett program för att åsidosätta både programmanifestet och utgivarkonfigurationen måste en utvecklare skapa en programkonfigurationsfil. Programkonfigurationsfilen distribueras och installeras sedan i samma mapp som programmets körbara fil. En lista över filschemat finns i Application Configuration File Schema.

Observera att om ditt program använder konfiguration per program får det inga viktiga säkerhetskorrigeringar eller buggkorrigeringar som utgivaren av sammansättningen kan ha problem med som konfigurationsfiler för utgivare. Ett program som använder konfiguration per program kan därför förbli osäkert eller fortsätta att fungera felaktigt även efter att en ny sammansättning med dessa korrigeringar har tillämpats på systemet. Därför bör programutvecklare aldrig skicka ett program med en konfiguration per program. Konfiguration per program bör endast användas av företagsadministratörer som en tillfällig korrigering när programmet bryts av en utgivarkonfiguration. I det här fallet är den permanenta lösningen att utvecklarna av sammansättningen och utvecklarna av programmet måste arbeta tillsammans för att säkerställa att sammansättningarna med utgivarkonfigurationen är helt bakåtkompatibla.

Följande är ett exempel på en programkonfigurationsfil. Mer information finns i Programkonfigurationsfiler.

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