Isolated Applications and Side-by-side Assembliesとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Isolated Applications and Side-by-side Assembliesの意味・解説 

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

(Isolated Applications and Side-by-side Assemblies から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/05 16:04 UTC 版)

ナビゲーションに移動 検索に移動

分離アプリケーションとSide-by-Sideアセンブリ (Isolated Applications and Side-by-side Assemblies) とは、Windows XPで導入された複数バージョンのソフトウェアコンポーネントの衝突を避けるための仕組みである。システム上に複数バージョンのコンポーネントを共存させ、アプリケーションごとに適切なバージョンのコンポーネントを選択可能にすることで、DLL地獄の解消を意図している。.NET Frameworkにおけるバージョン管理の仕組みをWindowsネイティブに持ち込んだものという見方もできる。

使用例

分離アプリケーション

分離アプリケーションとは、後述するアプリケーションマニフェストに自己の使用するコンポーネント(Side-by-Sideアセンブリ)を記述したアプリケーションである。分離アプリケーションの実行時、Win32システムはアプリケーションマニフェストを見て、読み込むべきアセンブリ (DLL/EXE) のバージョンを決定する。アセンブリは自身専用のプライベートアセンブリか、複数のバージョンが共存する共有アセンブリとして存在するため、他のアプリケーションによるアセンブリの追加・削除・更新などの影響を受けずに済む。

Side-by-Sideアセンブリ

Side-by-Sideアセンブリとは、DLL、ウィンドウクラス、COMサーバ、タイプライブラリ、COMインターフェイスなどの集合をマニフェストに記載したものである。

アセンブリは自身について次のような情報を持ち[5]、これによって区別される。

このうち、少なくとも種別・名前・バージョンが必須である。

アセンブリは、共有アセンブリとプライベートアセンブリに区別される。

共有アセンブリ

共有アセンブリは様々なアプリケーションにまたがって用いられるアセンブリであり、WinSxSフォルダーにインストールされる。インストールにはデジタル署名Windows Installerの使用が求められる[6]。例え同名のファイルでも、異なるアセンブリに属していれば、異なるサブディレクトリに格納され、上書きされることはない。

プライベートアセンブリ

プライベートアセンブリは共有されることなくアプリケーションが個別に用いるアセンブリである。共有アセンブリと違いインストールの必要がない。アプリケーションの実行ファイルの存在するディレクトリもしくはそのサブディレクトリに配置される。そのため、共有アセンブリを使用しないアプリケーションは、インストーラーを使用せず単純なファイルコピーのみでアプリケーションを使用できる。

通常COMコンポーネントはWindowsシステムレジストリへの事前登録が必要となり、また登録の際には管理者権限を要求するが、SxSプライベートアセンブリの仕組みを利用することでレジストリ登録が不要なCOMコンポーネントを作成・利用することも可能となる[7]

マニフェスト

マニフェストは分離アプリケーション、Side-by-Sideアセンブリの双方で自己について記載するXMLファイルであり、拡張子manifestを持つ。分離アプリケーションが用いるものをアプリケーションマニフェスト、Side-by-Sideアセンブリが用いるものをアセンブリマニフェストと呼ぶ。

Microsoft Docs(旧MSDNライブラリ)の「Windows XP ビジュアル スタイルの使用」[1]に記載されてあるアプリケーションマニフェストの例を以下に引用する。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="1.0.0.0"
    processorArchitecture="X86"
    name="CompanyName.ProductName.YourApp"
    type="win32"
/>
<description>アプリケーションの説明</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

assemblyIdentity要素およびdescription要素では、分離アプリケーション自身の情報について記述する。そして、dependentAssembly要素でこのアプリケーションが参照するSide-by-Sideアセンブリの情報を記載する。assemblyIdentity要素1つがアセンブリ1つに対応する。

アプリケーションマニフェストは、通常、分離アプリケーションの実行時に読み込まれるが、アクティベーションコンテキストAPIを使用することでより細かく制御できる。

なお、分離アプリケーションとSide-by-Sideアセンブリに関する項目のほか、アプリケーションマニフェストには以下の項目も存在する。

  • ユーザーアカウント制御に関するもの(Windows Vistaより)[8]
  • 高DPI対応の宣言(Windows Vistaより)[9]
  • Windowsへの互換性表明(Windows 7より)[10]。この機能が搭載されたのはWindows 7からではあるものの、Windows Vistaへの互換を宣言する旨の項目も用意されている。

マニフェストは「実行ファイル名.manifest」という名前で実行ファイルと同じフォルダーに置くか、ビルド時にリソースとして実行ファイルに埋め込むことで機能する[11]

構成ファイル

アセンブリの配布を始めた後に、使用するアセンブリの変更を行うための仕組みである。

例えば、セキュリティ上の問題が発覚した場合、発行者構成ファイルをWinSxSにインストールすると、プライベートアセンブリを使用していた分離アプリケーションでもバージョンが該当すれば、共有アセンブリにインストールされたより新しいバージョンを使用させると言ったことも可能である。

Side-by-Sideコンポーネント共有

Side-by-Sideコンポーネント共有とは、Windows 2000およびWindows 98 Second Editionにおいて導入された、コンポーネントの衝突を避けるための実装技術である[12][13]。「分離アプリケーションとSide-by-Sideアセンブリ」と同じ目的を持ち、その前身であると言える。

脚注

[脚注の使い方]

注釈

  1. ^ Visual C++ 2010以降の再頒布可能パッケージは中央配置 (central deployment) 方式に戻っている。すなわち、ランタイムインストーラーによって%WinDir%\System32にmsvcr100.dllなどが配置される。

出典

  1. ^ a b Windows XP ビジュアル スタイルの使用”. Microsoft Docs. マイクロソフト (2008年12月3日). 2022年1月6日閲覧。
  2. ^ DLL Hellを解消する新しいWindowsインストーラとアセンブリ(7/7) - @IT
  3. ^ C/C++ 分離アプリケーションおよび side-by-side アセンブリのビルド”. MSDNライブラリ. マイクロソフト (2007年11月). 2010年3月30日時点のオリジナルよりアーカイブ。2008年11月8日閲覧。
  4. ^ Concepts of Isolated Applications and Side-by-side Assemblies | Microsoft Docs
  5. ^ Assembly Manifests” (英語). MSDNライブラリ. マイクロソフト (2007年11月1日). 2008年11月8日閲覧。
  6. ^ Installing Side-by-side Assemblies as Shared Assemblies” (英語). MSDNライブラリ. マイクロソフト (2007年11月1日). 2008年11月8日閲覧。
  7. ^ Creating Registration-Free COM Objects - Win32 apps | Microsoft Docs
  8. ^ Step 6: Create and Embed an Application Manifest (UAC)”. MSDNライブラリ. マイクロソフト. 2008年11月8日閲覧。
  9. ^ 高 DPI 対応の Win32 アプリケーションを記述する” (日本語). Windows 7 ホワイト ペーパー. マイクロソフト (2009年4月28日). 2010年12月29日閲覧。
  10. ^ Application Manifest - Win32 apps” (英語). Microsoft Docs. マイクロソフト (2021年4月28日). 2022年1月6日閲覧。
  11. ^ Using Side-by-Side Assemblies as a Resource” (英語). MSDNライブラリ. マイクロソフト (2007年11月1日). 2008年11月8日閲覧。
  12. ^ アプリケーションで共有する Side-by-Side コンポーネントの実装 (拡張) | Microsoft Docs
  13. ^ DLL Hellを解消する新しいWindowsインストーラとアセンブリ(5/7) - @IT

参考

以下はMSDNライブラリ内

関連項目

外部リンク


「Isolated Applications and Side-by-side Assemblies」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

Isolated Applications and Side-by-side Assembliesのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Isolated Applications and Side-by-side Assembliesのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの分離アプリケーションとSide-by-Sideアセンブリ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS