Dela via


Arkitektur för VSTO-tillägg

VSTO-tillägg som skapats med hjälp av Office-utvecklarverktygen i Visual Studio har arkitektoniska funktioner som betonar stabilitet och säkerhet och gör det möjligt för dem att arbeta nära Microsoft Office. I det här avsnittet beskrivs följande aspekter av VSTO-tillägg:

Förstå VSTO-tillägg

När du använder Office-utvecklarverktygen i Visual Studio för att skapa ett VSTO-tillägg skapar du en hanterad kodsammansättning som läses in av ett Microsoft Office-program. När sammansättningen har lästs in kan VSTO-tillägget svara på händelser som genereras i programmet (till exempel när en användare klickar på ett menyalternativ). VSTO-tillägget kan också anropa till objektmodellen för att automatisera och utöka programmet, och det kan använda någon av klasserna i .NET Framework.

Sammansättningen kommunicerar med programmets COM-komponenter via programmets primära interop-sammansättning. Mer information finns i Office primary interop assemblies och Office solutions development overview (VSTO).

Om flera VSTO-tillägg installeras för ett program läses varje VSTO-tillägg in i en annan programdomän. Det innebär att ett VSTO-tillägg som beter sig felaktigt inte kan orsaka att andra VSTO-tillägg misslyckas. Det hjälper också till att se till att alla VSTO-tilläggssammansättningar tas bort från minnet när programmet stängs. Mer information om programdomäner finns i Programdomäner.

Anmärkning

VSTO-tillägg som du skapar med hjälp av Office-utvecklarverktygen i Visual Studio är utformade för att endast användas när värdprogrammet för Microsoft Office startas av en slutanvändare. Om programmet startas programmatiskt (till exempel med automation) kanske VSTO-tillägget inte fungerar som förväntat.

Komponenter i VSTO-tillägg

Även om VSTO-tillägget är huvudkomponenten finns det flera andra komponenter som spelar en viktig roll i hur Microsoft Office-program identifierar och läser in VSTO-tillägg.

Registerposter

Microsoft Office-program identifierar VSTO-tillägg genom att leta efter en uppsättning registerposter. En fullständig lista över de registerposter som används av VSTO-tillägg finns i Registerposter för VSTO-tillägg.

När du skapar din lösning skapar Visual Studio alla nödvändiga registerposter på utvecklingsdatorn så att du kan felsöka och köra ditt VSTO-tillägg. Mer information finns i Skapa Office-lösningar.

Om du använder ClickOnce för att distribuera lösningen skapar installationsprogrammet som genereras av publiceringsprocessen automatiskt registernycklarna på slutanvändarens dator. Mer information finns i Distribuera en Office-lösning med hjälp av ClickOnce.

Distributionsmanifest och programmanifest

VSTO-tillägg använder distributionsmanifest och programmanifest för att identifiera och läsa in den senaste versionen av VSTO-tilläggssammansättningen. Distributionsmanifestet pekar på det aktuella programmanifestet. Programmanifestet pekar på VSTO-tilläggssammansättningen och anger vilken startpunktsklass som ska köras i sammansättningen. Mer information finns i Program- och distributionsmanifest i Office-lösningar.

Visual Studio Tools för Office Runtime

Om du vill köra VSTO-tillägg som skapas med hjälp av Office-utvecklarverktygen i Visual Studio måste slutanvändardatorerna ha Visual Studio Tools för Office-körning installerat. Körtiden inkluderar ohanterade komponenter och en uppsättning hanterade assemblies. De ohanterade komponenterna läser in VSTO-tillägget. De hanterade sammansättningarna tillhandahåller den objektmodell som din VSTO-tilläggskod använder för att automatisera och utöka värdprogrammet.

Mer information finns i Översikt över Visual Studio Tools for Office-körtid.

Så här fungerar VSTO-tillägg med Microsoft Office-program

När en användare startar ett Microsoft Office-program använder programmet distributionsmanifestet och programmanifestet för att hitta och läsa in den senaste versionen av VSTO-tilläggssammansättningen. Följande bild visar den grundläggande arkitekturen för dessa VSTO-tillägg.

2007 Office-tilläggsarkitektur

Anmärkning

I Office-lösningar som riktar sig mot .NET Framework 4 eller .NET Framework 4.5 anropar lösningar objektmodellen för värdprogrammet med hjälp av PIA-typinformation som är inbäddad i lösningssammansättningen i stället för att anropa till PIA direkt. Mer information finns i Designa och skapa Office-lösningar.

Inläsningsprocess

Följande steg inträffar när en användare startar ett program:

  1. Programmet kontrollerar registret efter poster som identifierar VSTO-tillägg som har skapats med hjälp av Office-utvecklarverktygen i Visual Studio.

  2. Om programmet hittar dessa registerposter laddar programmet VSTOEE.dll, som laddar VSTOLoader.dll. Det här är ohanterade DLL:er som är inläsningskomponenterna för Visual Studio 2010 Tools for Office Runtime. Mer information finns i Översikt över Visual Studio Tools for Office-körtid.

  3. VSTOLoader.dll läser in .NET Framework och startar den hanterade delen av Visual Studio Tools for Office-körningen .

  4. Visual Studio Tools för Office-körning söker efter manifestuppdateringar och laddar ned de senaste program- och distributionsmanifesten.

  5. Körtidsmiljön för Visual Studio Tools for Office utför flera säkerhetskontroller. Mer information finns i Säkra Office-lösningar.

  6. Om VSTO-tillägget är betrott att köras använder Visual Studio Tools for Office-körningen distributionsmanifestet och programmanifestet för att söka efter sammansättningsuppdateringar. Om en ny version av sammansättningen är tillgänglig laddar körningen ned den nya versionen av sammansättningen till ClickOnce-cachen på klientdatorn. Mer information finns i Distribuera en Office-lösning.

  7. Visual Studio Tools for Office-körningsmiljön skapar en ny applikationsdomän som ska ladda VSTO-tilläggets assembly.

  8. Visual Studio Tools for Office-runtime laddar VSTO-tilläggssammansättningen i programdomänen.

  9. Körningen av Visual Studio Tools for Office anropar metoden RequestComAddInAutomationService i ditt VSTO-tillägg om du har åsidosatt den.

    Du kan också åsidosätta den här metoden för att exponera ett objekt i ditt VSTO-tillägg för andra Microsoft Office-lösningar. För mer information, se Anropa kod i VSTO-tillägg från andra Office-lösningar.

  10. Visual Studio Tools för Office-runtime anropar RequestService-metoden i ditt VSTO-tillägg om du har överskridit den.

    Du kan också åsidosätta den här metoden för att utöka en Microsoft Office-funktion genom att returnera ett objekt som implementerar ett utökningsgränssnitt. Mer information finns i Anpassa gränssnittsfunktioner med hjälp av utökningsbarhetsgränssnitt.

    Anmärkning

    Visual Studio Tools for Office-körningen gör separata anrop till RequestService metoden för varje utökningsgränssnitt som stöds av värdprogrammet. Även om det första anropet RequestService till metoden vanligtvis sker före anropet ThisAddIn_Startup till metoden, bör vsto-tillägget inte göra några antaganden om när RequestService metoden anropas eller hur många gånger den kommer att anropas.

  11. Visual Studio Tools för Office-runtime anropar metoden ThisAddIn_Startup i ditt VSTO-tillägg. Den här metoden är standardhändelsehanteraren för Startup händelsen. Mer information finns i Händelser i Office-projekt.