Sdílet prostřednictvím


DLL/COM Redirection on Windows

Přesměrování knihovny DLL/COM je strategie izolace aplikace, kterou používají podnikoví správci v systému Windows XP.

**Windows Server 2008, Windows Vista, Windows Server 2003 a Windows XP s aktualizací SP2: ** Použití strategií přesměrování knihovny DLL/COM se nedoporučuje, protože izolované aplikace, které používají manifesty a souběžná sestavení mohou být snazší aktualizovat a obsluhovat. Přítomnost souboru .local se ignoruje, pokud je k dispozici manifest. Strategie přesměrování knihovny DLL/COM pomocí souborů .local funguje, pokud aplikace nemá manifest.

Přesměrování knihovny DLL/COM váže aplikaci na místní verzi komponenty. Soubory místní komponenty je možné uchovávat odděleně od verze součásti systému v umístění, které je pro aplikaci soukromé. Verze komponenty systému je globálně zaregistrovaná a dostupná pro všechny ostatní aplikace, které ji sváže. Místní verze komponenty je vyhrazena pro výhradní použití aplikace. V případě potřeby lze soubory součástí používané aplikací načíst do paměti ve stejnou dobu jako soubory komponent systému.

Přesměrování knihovny DLL/COM je aktivováno instalací speciálního souboru spolu s kopií místního souboru komponenty do stejného adresáře jako spustitelný soubor aplikace. Speciální soubor je prázdný soubor pojmenovaný podle názvu souboru spustitelného souboru aplikace a připojený pomocí .local. Chcete-li například aktivovat přesměrování knihovny DLL/COM pro aplikaci s názvem Myapp, místní verze komponenty a prázdný soubor s názvem Myapp.exe.local musí být zkopírován do složky obsahující Myapp.exe. Tím se aplikace sváže s místní verzí komponenty, nikoli s globálně sdílenou verzí komponenty.

Když aplikace načte soubor součásti, například soubor DLL nebo .ocx, systém Windows ho nejprve vyhledá ve složce, ve které je nainstalován soubor .local a spustitelný soubor aplikace. Pokud se najde, aplikace použije tento soubor komponenty bez ohledu na jakoukoli cestu hledání adresáře definovanou v aplikaci nebo registru. Pokud nebyl nalezen, použije se soubor komponenty v definované cestě hledání.

Instalační nástroj musí pro instalaci aplikace s přesměrováním knihovny DLL/COM provést následující kroky:

  • Prázdný soubor .local se musí zkopírovat do stejné složky jako spustitelný soubor aplikace.
  • Všechny komponenty, knihovny DLL a soubory .ocx používané aplikací musí být zkopírovány do stejné složky jako spustitelný soubor aplikace.
  • Izolované komponenty modelu COM musí být registrovány v systému Windows, aby různé verze sestavení nebyly v konfliktu s ostatními při načtení do paměti ve stejnou dobu. Proces registrace vyžaduje, aby se implementace komponenty mezi verzemi změnila, určitá metadata modelu COM, jako jsou CLSID, ProgID, Knihovna typů a Model vláken, nemůže.
  • Pokud je aplikace nainstalována pomocí Instalační služby systému Windows, je možné adresář aplikace zabezpečit pomocí tabulky LockPermissions. Systém má obvykle přístup ke čtení, zápisu a provádění; všem ostatním procesům se udělí pouze přístup ke spuštění a čtení.