Koncept izolovaných aplikací a souběžných sestavení

Aplikace je považována za izolovanou aplikaci , pokud jsou všechny její komponenty souběžná sestavení. Souběžné sestavení je kolekce prostředků – skupina knihoven DLL, tříd oken, serverů COM, knihoven typů nebo rozhraní – které se nasazují společně a které jsou dostupné spuštěné aplikaci. Souběžné sestavení je zpravidla jedna až několik knihoven DLL.

Sdílené nebo soukromé

Souběžné sestavení může být buď sdílené, nebo soukromé. Sdílená souběžná sestavení mohou být používána více aplikacemi, které v manifestech určují závislost na sestavení. Několik verzí souběžného sestavení může být sdíleno různými aplikacemi, které běží současně. Privátní sestavení je sestavení, které je nasazeno společně s aplikací pro výhradní použití této aplikace. Soukromá sestavení se instalují do složky, která obsahuje spustitelný soubor aplikace nebo některou z jejích podsložek.

Manifesty a pořadí hledání

Izolované aplikace i souběžná sestavení jsou popsána manifesty. Manifest je dokument XML, který může mít formu externího souboru nebo může být vložen do aplikace nebo sestavení jako prostředek. Soubor manifestu izolované aplikace slouží ke správě názvů a verzí sdílených souběžných sestavení, na které by aplikace při běhu měla vytvořit vazbu. Manifest souběžného sestavení obsahuje názvy, verze, prostředky a závislá sestavení souběžných sestavení. Manifest sdílených souběžných sestavení se instaluje do složky %WINDIR%\WinSxS\Manifests\. V případě soukromého sestavení doporučujeme jeho manifest zahrnout do knihovny DLL jako prostředek, jehož ID je rovno 1. Soukromé sestavení může mít také stejný název jako knihovna DLL. Další informace naleznete v tématu o soukromých sestaveních.

Při běhu používá systém Windows informace o sestavení z manifestu aplikace k vyhledání a načtení odpovídajícího souběžného sestavení. Pokud je izolovaná aplikace závislá na nějakém sestavení, hledá operační systém toto sestavení nejprve mezi sdílenými sestaveními v mezipaměti nativních sestavení ve složce %WINDIR%\WinSxS\. Není-li požadované sestavení nalezeno, hledá pak operační systém soukromé sestavení ve složce adresářové struktury aplikace. Další informace naleznete v tématu Sestavení vyhledávání sekvence.

Změna závislostí

Závislosti sestavení vedle sebe můžete změnit po nasazení aplikace úpravou konfiguračních souborů vydavatele a konfiguračních souborů aplikace. Konfigurační soubor vydavatele, označovaný také jako soubor zásad vydavatele, je soubor XML, který globálně přesměrovává aplikace a sestavení od používání jedné verze souběžného sestavení k používání jiné verze téhož sestavení. Závislost můžete například změnit, pokud je pro souběžné sestavení nasazena oprava chyby nebo zabezpečení, a chcete všechny aplikace přesměrovat tak, aby používaly tuto opravenou verzi. Konfigurační soubor aplikace je soubor XML, který přesměrovává konkrétní aplikaci od používání jedné verze souběžného sestavení k používání jiné verze téhož sestavení. Pomocí konfiguračního souboru aplikace můžete přesměrovat konkrétní aplikaci tak, aby používala jinou verzi souběžného sestavení, než která je definovaná v konfiguračním souboru vydavatele. Další informace najdete v tématu Konfigurace.

Knihovny jazyka Visual C++

V sadě Visual Studio 2005 a Visual Studio 2008 byly distribuovatelné knihovny (například ATL, MFC, CRT, Standard C++, OpenMP a MSDIA) nasazeny jako sdílená souběžná sestavení do mezipaměti nativních sestavení. V aktuální verzi používají distribuovatelné knihovny centrální nasazení. Ve výchozím nastavení jsou všechny aplikace vytvořené pomocí sady Visual Studio sestavené pomocí manifestu vloženého do konečného binárního souboru a manifest popisuje závislosti binárního souboru v knihovnách Visual C++. Pokud chcete porozumět generování manifestu pro aplikace C++, přečtěte si téma Principy generování manifestu pro programy C/C++. Manifest se nevyžaduje pro aplikace staticky propojené s knihovnami, které používají, nebo které používají místní nasazení. Další informace o nasazení naleznete v tématu Nasazení v jazyce Visual C++.

Viz také

Sestavení izolovaných aplikací C/C++ a souběžných sestavení