読者です 読者をやめる 読者になる 読者になる

Side-by-Side アセンブリ

Windows XP で分離アプリケーションと Side-by-Side アセンブリをビルドし、サービスを提供する方法
http://www.microsoft.com/japan/msdn/windows/windowsxp/sidexsidewinxp.asp
アプリケーションで共有する Side-by-Side コンポーネントの実装 (拡張)
http://www.microsoft.com/japan/msdn/windows/windows2000/sidebyside.asp
Windows XP がもたらす Visual Basic デベロッパーへの福音 〜 第 2 回: 新しいサイド バイ サイド技術 〜
http://www.microsoft.com/japan/msdn/thisweek/vbxp/vbxp2.asp

Side-by-Side (以下SxSと記します)難しいです.中さんのご指摘があって色々調べてみたんですがだいぶ混乱気味.ただ「WindowsXP 以降でOSに標準で付属するGDIPlus.dll は"Side-by-Side アセンブリ"としてもインストールされている」ということは言及しておいた方が良さそうですね.一番上の資料が,ちょうどGDIPlus.dllを例にとって説明しています.
http://www.microsoft.com/japan/msdn/windows/windowsxp/sidexsidewinxp_fig4.gif
ただ,手元のWindowsXP SP2環境で調べる限りどうも以下のような関係があるようです.

  • .NET Framework → SxS 版のGDIPlus.dllを利用 → SxSの恩恵にあずかれる
  • Office 2003 → わざわざプライベートにインストールしたGDIPlus.dllを利用 → Office 2003専用のセキュリティアップデートが必要な羽目に

リリース時期を考えるとOffice 2003はSxS版GDI+ランタイムを使っていても良さそうなものですが,何故プライベートなDLLを利用したのかその意図は分かりません.Windows XP/Windows Server 2003にインストールした場合に限りOffice 2003のディレクトリに.manifestファイルを置いてGDIPlus.dllを参照する,という形態であればOffice 2003についてはアップデートは不要だったのではないでしょうか?
ちなみにこの環境でディスクの全ファイルを検索してみましたが,GDIPlus.dllは全部で5つ存在しました

  • C:\Program Files\Microsoft Works
  • C:\Program Files\Microsoft Office\OFFICE11
  • C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.0.0_x-ww_8d353f13
  • C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.10.0_x-ww_712befd8
  • C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.2600.2180_x-ww_522f9f82

下3つがSxS用のものです.やはりMicrosoft製品のOfficeにはSxS版を利用して欲しい気がします.