Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Anmärkning
Den här artikeln är specifik för .NET Framework. Det gäller inte för nyare implementeringar av .NET, inklusive .NET 6 och senare versioner.
Följ dessa allmänna riktlinjer för att skapa hanterade program eller komponenter som är utformade för körning sida vid sida:
Binda typidentitet till en viss version av en fil.
Common Language Runtime binder typidentitet till en viss filversion med hjälp av starknamngivna samlingar. Om du vill skapa ett program eller en komponent för körning sida vid sida måste du ge alla sammansättningar ett starkt namn. Detta skapar en precis typidentitet och säkerställer att typupplösning alltid dirigeras till rätt fil. En strong-named assembly innehåller information om version, kultur och utgivare som runtime använder för att lokalisera rätt fil för att uppfylla en bindningsbegäran.
Använd versionsmedveten lagring.
Körmiljön använder den globala sammanställningscachen för att tillhandahålla en version-medveten lagring. Den globala samlingscachen är en versionskänslig katalogstruktur som är installerad på varje dator som använder .NET Framework. Sammansättningar som är installerade i den globala sammansättningscachen skrivs inte över när en ny version av sammansättningen installeras.
Skapa ett program eller en komponent som körs isolerat.
Ett program eller en komponent som körs isolerat måste hantera resurser för att undvika konflikter när två instanser av programmet eller komponenten körs samtidigt. Programmet eller komponenten måste också använda en versionsspecifik filstruktur.
Program- och komponentisolering
En nyckel för att utforma ett program eller en komponent för körning sida vid sida är isolering. Programmet eller komponenten måste hantera alla resurser, särskilt fil-I/O, på ett isolerat sätt. Följ dessa riktlinjer för att se till att programmet eller komponenten körs isolerat:
Skriv till registret på ett versionsspecifikt sätt. Lagra värden i binärer och nycklar som anger versionen, och dela inte information eller status mellan versioner av en komponent. Detta förhindrar att två program eller komponenter körs samtidigt från att skriva över information.
Gör namngivna kernelobjekt versionsspecifika så att ett konkurrenstillstånd inte inträffar. Ett konkurrenstillstånd inträffar till exempel när två semaforer från två versioner av samma program väntar på varandra.
Gör fil- och katalognamn versionsmedvetna. Det innebär att filstrukturer bör förlita sig på versionsinformation.
Skapa användarkonton och grupper på ett versionsspecifikt sätt. Användarkonton och grupper som skapats av ett program bör identifieras efter version. Dela inte användarkonton och grupper mellan versioner av ett program.
Installera och avinstallera versioner
När du utformar ett program för körning sida vid sida följer du dessa riktlinjer för att installera och avinstallera versioner:
Ta inte bort information från registret som kan behövas av andra program som körs under en annan version av .NET Framework.
Ersätt inte information i registret som kan behövas av andra program som körs under en annan version av .NET Framework.
Avregistrera inte COM-komponenter som kan behövas av andra program som körs under en annan version av .NET Framework.
Ändra inte InprocServer32 eller andra registerposter för en COM-server som redan har registrerats.
Ta inte bort användarkonton eller grupper som kan behövas av andra program som körs under en annan version av .NET Framework.
Lägg inte till något i registret som innehåller en oversionerad sökväg.
Filversionsnummer och sammansättningsversionsnummer
Filversionen är en Win32-versionsresurs som inte används vid körning. I allmänhet uppdaterar du filversionen även för en uppdatering på plats. Två identiska filer kan ha olika filversionsinformation och två olika filer kan ha samma filversionsinformation.
Sammansättningsversionen används av körtiden för sammansättningsbindning. Två identiska assemblyn med olika versionsnummer behandlas som två olika assemblyn av programkörningen.
Med verktyget Global Assembly Cache (Gacutil.exe) kan du ersätta en sammansättning när endast filversionsnumret är nyare. Installationsprogrammet installeras vanligtvis inte över en sammansättning om inte sammansättningsversionsnumret är större.