分離アプリケーションとSide-by-Sideアセンブリ

分離アプリケーションとサイドバイサイドアセンブリ



分離アプリケーション(Isolated Applications)とサイドバイサイドアセンブリ(Side-by-Side Assemblies)は、Windows XPにおいて導入された技術であり、複数のソフトウェアコンポーネントが同時に存在する際の衝突を防ぐための重要な仕組みです。この技術の目的は、異なるバージョンのコンポーネントがアプリケーションの実行時に混在して起きる「DLL地獄」と呼ばれる問題を解消することにあります。

分離アプリケーションとは



分離アプリケーションは、特定のアプリケーションが自身の依存コンポーネントをアプリケーションマニフェストというファイルに記載することで構成されます。このマニフェストには、必要なDLLやEXEファイルのバージョンが明示的に定義されており、アプリケーションが実行されるときにWin32システムがこの情報を参照して正しいアセンブリをロードします。その結果、各アプリケーションは独立して必要なバージョンのアセンブリを使用でき、他のアプリケーションがアセンブリを追加、削除、または更新した場合でも影響を受けることがありません。

サイドバイサイドアセンブリについて



サイドバイサイドアセンブリとは、複数のコンポーネントをまとめて扱う仕組みであり、これによりDLL、ウィンドウクラス、COMサーバ、タイプライブラリ、COMインターフェイスの情報をマニフェストに記載することができます。ここに記載される情報には、アセンブリの種別、名前、言語、プロセッサアーキテクチャ、バージョン、公開キートークンなどが含まれ、これらの情報に基づいてアセンブリが唯一無二のものであると判断されます。特に、種別、名前、バージョンは必須項目であり、アセンブリを共に利用するさまざまなアプリケーション間での整合性を保つことを可能にします。

共有アセンブリとプライベートアセンブリ



アセンブリは大きく分けて共有アセンブリとプライベートアセンブリに分類されます。共有アセンブリとは、複数のアプリケーションで共有されるアセンブリで、WinSxSフォルダ内にインストールされ、デジタル署名とWindows Installerを利用して管理されます。一方、プライベートアセンブリは特定のアプリケーションでのみ使用され、アプリケーションの実行ファイルと同じディレクトリ内またはそのサブディレクトリに配置されます。このため、プライベートアセンブリを使うアプリケーションは特別なインストール手順を必要とせず、単純なファイルコピーで利用可能です。さらに、COMコンポーネントの利用際に、SxSプライベートアセンブリを活用することで、レジストリへの事前登録なしで済むケースもあります。

マニフェストの重要性



マニフェストは分離アプリケーションやサイドバイサイドアセンブリの基本構成ファイルであり、XML形式で作られています。このファイルには該当アプリケーションの情報が記載されるほか、必要なアセンブリや依存関係についての情報も盛り込まれて成り立っています。アプリケーションマニフェストとアセンブリマニフェストの2種類があり、通常はアプリケーション実行時に読み込まれます。また、Windows Vista以降のユーザーアカウント制御や高DPI対応の宣言、Windowsへの互換性表明などもマニフェストに含まれます。

まとめ



分離アプリケーションとサイドバイサイドアセンブリは、Windowsにおいてアプリケーションの互換性や安定性を保つための重要な技術です。この仕組みを使用することで、異なるソフトウェアコンポーネントのコンフリクトを避け、システム全体の健全性を高めることが可能となり、多様なアプリケーションが共存できる環境を実現しています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。