Dela via


Installera Win32-sammansättningar för delning sida vid sida

Följande beskriver hur du skapar ett Windows Installer-paket för att installera en Win32-sammansättning. Paketet installerar en sida vid sida-sammansättning i winsxs-mappen för delad användning av programmet. När du har installerat paketet är den delade sammansättningen globalt tillgänglig för alla program som anger ett beroende av sammansättningen i en sammansättningsmanifestfil. Installationsprogrammet registrerar inte sammansättningen sida vid sida i systemet globalt.

Observera att du kan installera delade sammansättningar sida vid sida med hjälp av sammanslagningsmoduler.

Innan du fortsätter bör du förstå hur du skapar ett Windows Installer-paket utan sammansättningar. Ett exempel på hur du skapar en enkel installation finns i Ett installationsexempel.

Installera en delad sammansättning sida vid sida

  1. Definiera en Windows Installer-komponent som innehåller Win32-sammansättningen. Den här komponenten kan innehålla andra resurser som alltid ska installeras eller tas bort med sammansättningen. Alla andra komponenter i programmet kan redigeras precis som för en installation utan sammansättningar. Lägg till en rad i tabellen Component för komponenten som innehåller Win32-sammansättningen. Ange en giltig Windows Installer-GUID- för den här komponentkoden. Använd inte manifestfilen som nyckelsökväg för den här komponenten.
  2. Lägg till en rad i tabellen FeatureComponents för att koppla komponenten till en Windows Installer-funktion. Mer information finns i Komponenter och funktioner. En Windows Installer-funktion bör vara en del av programmets funktioner som kan identifieras för en användare. Sammansättningen aktiveras när den här funktionen väljs av en användare eller initieras av ett programfel. Om sammansättningen definierar ytterligare en funktion lägger du till ytterligare en rad i funktionstabellen för funktionens attribut. Det här steget behövs inte när du redigerar en sammanslagningsmodul.
  3. För sammansättningar sida vid sida lagras bindnings- och aktiveringsinformation, till exempel COM-klasser, gränssnitt och typbibliotek, i manifestfiler i stället för i registret. Delade sammansättningar lagrar den här informationen i ett sammansättningsmanifest. På system som stöder sammansättningar sida vid sida, installationsprogrammet hoppar över bearbetningen av information om komponenten som anges i tabellen Extension, Verb, TypeLib-tabell, MIME-tabell, Klasstabell, ProgId-tabelloch AppId-tabell. Bindnings- och aktiveringsinformation kan anges i dessa tabeller för användning av system som inte stöder separat sammansättningsdelning.
  4. Sida vid sida-installation registrerar inte sammansättningen globalt, installationsprogrammet hoppar över självregistrering av komponenten om någon självregistreringsinformation har angetts i tabellen SelfReg. Självregistreringsinformation kan anges i SelfReg-tabellen för självregistrering av komponenten på system som inte stöder separat sammansättningsdelning.
  5. Lägg till all annan registerinformation, med undantag för bindning och aktivering eller självregistrering av komponenten, i Registry-tabellen, RemoveRegistry-tabellenoch Environment-tabellen.
  6. Eftersom det här är en delad sammansättning genererar inte en .local-fil. Inkludera inte information för den här komponenten i tabellen IsolatedComponent. Installationsprogrammet hoppar över tabellen IsolatedComponent för den här komponenten på operativsystem som stöder delning sida vid sida. Lägg till information i tabellen IsolatedComponent om du vill att sammansättningen ska vara privat på system som stöder .local-filer.
  7. För att aktivera delning sida vid sida måste Win32-sammansättningen installeras i mappen Winsxs. Detta uppnås genom att lämna kolumnen File_Application i tabellen MsiAssembly null för sammansättningen. Detta instruerar installationsprogrammet att installera sammansättningen i WinSxS-mappen i stället för till komponentens mapp. Lägg till en rad i tabellen MsiAssembly för komponenten som innehåller Win32-sammansättningen. Ange värdet 1 i fältet Attribut i tabellen MsiAssembly för att ange att detta är en Win32-sammansättning. Lämna fältet File_Application tomt för en delad sammansättning. Lägg till åtgärden MsiPublishAssemblies i tabellen InstallExecuteSequence eller tabellen AdvtExecuteSequence. Lägg till åtgärden MsiUnpublishAssemblies i tabellen InstallExecuteSequence.
  8. Lägg till rader i tabellen MsiAssemblyName för komponenten. Lägg till en rad för varje namn och värdepar som anges i avsnittet assemblyIdentity i manifestet. Ett exempel finns i MsiAssemblyName-tabell.