グローバルに提供される side-by-side アセンブリを適用しないアプリケーションは、マイクロソフトのソフトウェア更新プログラムで修正される問題に対して脆弱になる可能性がある

文書翻訳 文書翻訳
文書番号: 835322 - 対象製品
すべて展開する | すべて折りたたむ

はじめに

グローバルに更新される side-by-side アセンブリを特定のアプリケーションに適用しないようにする設定は、Microsoft Windows Server 2003 ベースのコンピュータでは管理者が、Microsoft Windows XP ベースのコンピュータではソフトウェア開発者および管理者が行うことができます。しかし、この回避機能を使用すると、この機能が有効でなければマイクロソフトのグローバルなソフトウェア更新プログラムをインストールすることで修正される問題に対して、アプリケーションが脆弱になる可能性があります。このため、この機能を使用しないことをソフトウェア開発者と管理者に強く推奨します。

Windows の DLL/COM リダイレクト技術と共に side-by-side アセンブリを使用することは推奨しません。詳細については、「詳細」を参照してください。

詳細

side-by-side アセンブリにはリソースのコレクションが含まれています。このコレクションには、DLL ファイル、ウィンドウ クラス、COM サーバー、タイプ ライブラリ、またはインターフェイスが 1 つ以上含まれる場合があります。これらのリソースは必ず一緒にアプリケーションに提供されます。side-by-side アセンブリは、以下のいずれかの場所に存在する XML 形式のアプリケーション マニフェストによって選択されます。
  • アプリケーションの実行可能ファイルのリソース。
  • アプリケーションの実行可能ファイルと同じフォルダにインストールされている拡張子 ".exe.manifest" のファイル。
  • マイクロソフトのアプリケーション互換性データベースの設定。アプリケーション マニフェストがマイクロソフトのアプリケーション互換性データベースによって提供されている場合、そのマニフェストは、アプリケーションによって提供されるものよりも優先されます。
展開後、ソフトウェア開発者または管理者は、アプリケーション構成ファイルを使用して、アプリケーション構成ごとにアセンブリの構成を更新することができます。アプリケーション構成ファイルとは、アプリケーションの実行可能ファイルと同じフォルダに含まれる拡張子 ".exe.config" のファイルです。アプリケーション構成ファイルを使用して、特定のアプリケーションが使用する side-by-side アセンブリのバージョンを、アプリケーションを再コンパイルすることなく別のバージョンにリダイレクトすることができます。たとえば、管理者または開発者は発行者ポリシーを使用することによって、すべてのアプリケーションには適用されない新しい side-by-side アセンブリを使用するようにアプリケーションを個別に更新することができます。そのアプリケーションには、以前のバージョンのアセンブリに代わって、新しい side-by-side アセンブリが適用されます。

また、Windows Server 2003 の管理者、Windows XP の管理者またはソフトウェア開発者は、グローバルに更新される side-by-side アセンブリを、すべてのアプリケーションに関して削除せずに、特定のアプリケーションに適用しないようにすることができます。管理者は、<publisherPolicy apply="no"/> 要素を含めてアプリケーション構成ファイルを更新することによって、これを行うことができます。

Windows XP ベースのコンピュータで使用されているアプリケーション構成ファイルで、グローバルに更新される side-by-side アセンブリが特定のアプリケーションに適用されないように設定されているかどうかを確認するには、アプリケーションの実行可能ファイルと同じファイル名の .config ファイルで <publisherPolicy apply="no"/> 要素を探します。たとえば、実行可能ファイルの名前が Application.exe の場合、グローバルに更新される side-by-side アセンブリがそのアプリケーションに適用されるかどうかを確認するには、Application.exe.config ファイルで <publisherPolicy apply="no"/> 要素を探します。<publisherPolicy apply="no"/> が存在する場合、グローバルに更新される side-by-side アセンブリはアプリケーションに適用されません。この Application.exe.config ファイルは、アプリケーションのアプリケーション マニフェストと同じ場所にインストールされます。

この機能により、ソフトウェア開発者および管理者は、マイクロソフトのソフトウェア更新プログラムをインストールすると正しく動作しなくなる特定のアプリケーションについて、ソフトウェア更新プログラムを選択的に無効にすることができます (したがって、ソフトウェア開発者または管理者が、すべてのアプリケーションについてソフトウェア更新プログラムを削除する必要はありません)。ただし、この設定を使用して特定のソフトウェア更新プログラムを無効にしたアプリケーションは、そのソフトウェア更新プログラムで修正されるすべての問題に対して脆弱になる可能性があります。

: Windows Server 2003 ベースのコンピュータでこの回避機能を使用するには、マイクロソフトのアプリケーション互換性データベースにエントリが必要です。ソフトウェア更新プログラムでこの設定を追加できるのは、管理者またはマイクロソフトのみです。

アプリケーション作成者またはアプリケーション ディレクトリを制御できるユーザーがグローバルな更新を回避できる方法は、他にもあります。

Windows での DLL/COM リダイレクト技術を使用する際の注意点

この技術では、通常、アプリケーションと共に展開される .local ファイルを呼び出します。この必要条件は、アプリケーションの互換性の問題を削減するために役立ちます。

: .local ファイルにより、システムがグローバル コピーではなく、アプリケーション フォルダの DLL を優先するようになります。グローバル コピーは重要なサービス更新プログラムです。アプリケーションで side-by-side アセンブリを使用している場合は、十分に注意してこの機能を使用するか、この機能を使用しないことを、ソフトウェア開発者および管理者に推奨します。

Windows での DLL/COM リダイレクト技術の詳細については、次のマイクロソフト Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/aa375142.aspx


side-by-side アセンブリを使用するソフトウェア開発者向けの推奨事項
  • アプリケーションを出荷する際に、アプリケーションのビルドまたはテストの際に使用した side-by-side アセンブリのバージョンが記載されているアプリケーション マニフェストを含めるようにします。
  • アプリケーション フォルダに展開するように選択する場合でも、必ず side-by-side アセンブリのマニフェスト ファイルを side-by-side DLL と共に展開します。
  • Microsoft Windows 2000 またはそれ以前のバージョンの Windows を実行しているコンピュータにアプリケーションをインストールする場合、それらのオペレーティング システムでは、side-by-side アセンブリをアプリケーション フォルダに展開しないようにします。side-by side アセンブリは、システム フォルダから使用するようにしてください。
  • .local 機能 (Windows での DLL/COM リダイレクト) を使用しないようにします。
  • side-by-side アセンブリに対して LoadLibrary 関数を実行する際、完全なパスを明示的に指定しないようにします。その代わり、静的リンクを使用するか、LoadLibrary 関数で DLL のファイル名を直接指定します。たとえば、ファイル名として "Gdiplus.dll" を指定します。
詳細については、次のマイクロソフト Web サイトを参照してください。
http://www.microsoft.com/japan/msdn/library/ja/jpdnwxp/htm/sidexsidewinxp.asp

関連情報

分離アプリケーションと side-by-side アセンブリの詳細については、次のマイクロソフト Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/aa375193.aspx
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 835322 (最終更新日 2004-09-29) を基に作成したものです。

プロパティ

文書番号: 835322 - 最終更新日: 2007年12月1日 - リビジョン: 4.2
この資料は以下の製品について記述したものです。
  • Microsoft Windows Server 2003, 64-Bit Datacenter Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows XP Media Center Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional x64 Edition
キーワード:?
kbinfo kbtshoot kbsecurity kbprb KB835322
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com