MS Officeのインストールに2つのフォルダが必要な理由

MS Officeのインストールに2つのフォルダが必要な理由

最近、MS Office 2007 のインストールで Access 2007 に関する重大な問題が発生し、ActiveX Data Objects 6.1 を適切に参照できないというエラーが発生しました。

問題を解決しようとしているときに、Office のインストールに非常によく似た 2 つのフォルダーがあることに気付きました。

  • C:\Program Files (x86)\Common Files\System\ado\
  • C:\Program Files \Common Files\System\ado\

どちらのフォルダーも内容は非常に似ていますが、すべてのファイルのサイズはわずかに異なります。ここには、多くの Access 参照 ActiveX データ オブジェクトが保存されます。

デフォルトでは、Access Referenceナビゲータがフォルダに誘導し(x86)、他のフォルダはない実際に必要な DLL ファイルに移動して選択できるようになります。

また、Microsoft が Office の 64 ビット バージョンを公開したことがないこともわかりました (この情報は疑わしい)。つまり、すべてのファイルがフォルダー内にあるのは当然のことだと思います(x86)

ほぼ同じファイル名(サイズが異なる)を持つ 2 つの異なるフォルダーが存在するのはなぜでしょうか(同じ名前のファイルは異なるコードであることを意味します)。

これは、ActiveX Data Objects 6.1 に 2 つの異なるバージョンがあることを意味しますか?

つまり、適切なファイル バージョンを参照できなかったことが問題だったということでしょうか?


PS: 最終的には、インストール CD から修復コマンドを実行してバグを修正する必要がありました。

答え1

Microsoft は、ActiveX データ コンポーネントの 32 ビット バージョンと 64 ビット バージョンを提供しています。これにより、ソフトウェア開発者は、それらを使用する 32 ビット プログラムと 64 ビット プログラムを作成できます。サイズが異なるのは、32 ビットと 64 ビットのメモリ ポインターのサイズが異なるためです。(通常、これは 64 ビット バージョンの方が大きくなることを意味しますが、必ずしもそうとは限りません。64 ビット プロセッサには、特定の種類のコードをより単純なバイナリ/アセンブリ コードを使用して実行するための最適化も多数あるためです。)

これらのコンポーネントが Office と一緒にインストールされているという想定は誤りです。ADO は「Microsoft Data Access Components」(MDAC) パッケージの一部であり、実際にはオペレーティング システムの一部です。そのため、バージョン番号 6.1 は、同じく 6.1 である Windows 7 の Windows バージョン番号と一致します。

お使いのバージョンの Microsoft Access がフォルダーに誘導する理由は、(x86)Access が 32 ビット バージョンであるため、32 ビット コンポーネントしか使用できないからです。Access の 64 ビット バージョン (質問での主張とは反対に、実際に存在します) をお持ちの場合は、非ディレクトリ内のコンポーネントのみを表示できます(x86)

(Windows 修復を実行して元の問題を解決できたということは、Windows のインストールに問題があったか、インストール中に Windows Update が破損した可能性があることを意味します。ただし、それはこれら 2 つのフォルダーの存在とはまったく関係ありません。)

関連情報