Riktlinjer för att skapa sammansättningar sida vid sida
Följande riktlinjer beskriver hur du skapar egna COM- eller Win32-sammansättningar sida vid sida. Du kanske inte behöver skapa egna sammansättningar sida vid sida om de funktioner som krävs tillhandahålls av någon av de microsoft-sammansättningar som stöds sida vid sida. I det här fallet använder du de sammansättningar som tillhandahålls av Microsoft och följer procedurerna för att använda sammansättningar sida vid sida i Använda isolerade program och sida vid sida-sammansättningar.
Överväg först om din komponent är en lämplig kandidat för en sida-vid-sida-sammansättning. För mer information, se Ska du ange en delad komponent som en sid-vid-sid-sammansättning?
Följ dessa riktlinjer för att skapa en sida vid sida-sammansättning:
- Bestäm vilka resurser som ska ingå i sammansättningen. Tänk på att en sammansättning består av en eller flera filer som alltid tillhandahålls till program och kunder tillsammans. Sammansättningen fungerar som den grundläggande enhet som används för namngivning, bindning, versionshantering, distribution och standardkonfiguration. När det är osäkert om två resurser hör hemma i samma sammansättning rekommenderar vi att de skapas för att gå in i separata sammansättningar. Vanligtvis består en sida-vid-sida-sammansättning av en enda DLL.
- Skapa en sammansättning manifest för sammansättningen. Manifestet ska beskriva COM-objektet eller typbiblioteken i sammansättningen. Mer information om vad som ska inkluderas i ett sammansättningsmanifest finns i sammansättningsmanifest.
- Utvärdera användningen av objekt när mer än en version av sammansättningen körs i systemet. Avgör om olika versioner av sammansättningen kräver separata datastrukturer, till exempel minnesmappade filer, namngivna pipes, registrerade Windows-meddelanden och -klasser, delat minne, semaforer, mutex och maskinvarudrivrutiner. Alla datastrukturer som används i sammansättningsversioner måste vara bakåtkompatibla versioner. Bestäm vilka datastrukturer som kan användas i olika versioner och vilka datastrukturer som måste vara privata för en version. Avgör om delade datastrukturer kräver separata synkroniseringsobjekt, till exempel semaphores och mutexes.
- Skapa din DLL så att den fungerar bra som en sida vid sida-sammansättning genom att följa riktlinjerna i Redigera en DLL för en sida vid sida-sammansättning.
- Skapa en uppsättning headerfiler och hjälpfunktioner för att på ett enkelt sätt kunna versionera registernycklar som innehåller monteringsstatus. Sammansättningar sparar vanligtvis sina tillståndsinställningar i registernycklar. Registerinställningarna måste skrivas på individuell versionsbasis för att isolera de flera assembly-versioner som kan köras samtidigt. Utforma dina sidlöpande assemblyn och DLL så att de rätt hanterar och lagrar assemblyns tillstånd under scenarier för sida-vid-sida-delning. Följ riktlinjerna i Skapa tillståndslagring för sidovis duplikatmonteringar.
- Utvecklare av program som använder privata sammansättningar bör skydda programkatalogen. Om programmet installeras med hjälp av Windows Installerkan programkatalogen skyddas med hjälp av tabellen LockPermissions. Vanligtvis ges systemet läs-, skriv- och exekveringsbehörighet till privata sammansättningar; Alla andra processer ges endast läs- och exekveringsbehörighet.
- Testa sammansättningen med scenarier med parallell delning för att säkerställa att den är en giltig parallell sammansättning. Installationen av komponenten räcker inte för att garantera att den fungerar som förväntat.
- Anta en metod för numrering av uppdateringar för din sammansättning. Varje sammansättning är associerad med ett versionsnummer i fyra delar. Från vänster till höger avgränsas de större, mindre delarna, bygg- och revisionsdelarna med punkter. Ändra huvud- eller delnumret för en sammansättning för en version som inte är kompatibel med tidigare versioner. Ändra endast bygg- och revisionsdelarna för bakåtkompatibla ändringar i sammansättningen. En utvecklare kan till exempel använda en numreringsmetod där alla 1.0.0.* versionsnummer refererar till uppdateringsversioner till sammansättningsversion 1.0.0.0.