- PR -

【C#】COM参照の追加に関して

1
投稿者投稿内容
Makoto
大ベテラン
会議室デビュー日: 2004/03/31
投稿数: 133
投稿日時: 2006-03-08 14:07
C#でプログラムを組んでいるのですが、下記に関してご存知の方
いらっしゃいましたら教えてください。

C#でアプリを作成しているのですが、
プロジェクトから『参照の追加』→『COMタブ』を選択し、
『Microsoft Office 11.0 Object Library』を追加します。

これをビルドすると、下記ファイルもアプリと出力されます。

 ・Interop.Microsoft.Office.Core.dll

あわせてインストーラを作成しており、
PJのプライマリ出力をインストールしています。
(→このとき、上記ファイルも配布されています。)

ここで質問なのですが、

【質問1】
上記ファイル『Interop.Microsoft.Office.Core.dll』は何なのでしょうか?
(このファイル自体に処理系が実装されているのでしょうか?
それともGACへの名前解決を提供するファイルに過ぎないのでしょうか?)

【質問2】
上記ファイルが『名前解決を提供するファイルに過ぎない』のであれば、
アプリケーション起動時にはどのようなシーケンスでDLLのロード動作
が走っているのでしょうか?
※COMであればレジストリのはずでしょうか...!?

C#での相互運用、GAC(Global Assembly Cashe)に関しての資料
(MSDN、@IT)を読んだのですが、.NETでは、GACを探す
(→少なくともレジストリはサーチしていない。)
ように読み取りました。(←もしかして理解不足でしょうか...?)

ただ、評価環境『WinXP(SP2)+Office2003(SP2)』では、GACに
Officeコンポーネントの登録がないにもかかわらず動作しています。
これは、もし【質問1】の答えが、『GACへの名前解決を提供するファイルに過ぎない』
のであれば、おかしいように思うのですが...

このあたりの動作ってどうなっているのでしょうか?

ご存知の方いらっしゃいましたら、よろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-08 14:16
引用:

Makotoさんの書き込み (2006-03-08 14:07) より:

上記ファイル『Interop.Microsoft.Office.Core.dll』は何なのでしょうか?
(このファイル自体に処理系が実装されているのでしょうか?
それともGACへの名前解決を提供するファイルに過ぎないのでしょうか?)


COM を CLR から利用するためのラッパーです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Makoto
大ベテラン
会議室デビュー日: 2004/03/31
投稿数: 133
投稿日時: 2006-03-08 15:05
回答ありがとうございます。

>COM を CLR から利用するためのラッパーです。

とのことですが、COMのラッッパーとすると、
COMの実ファイルへのパス解決方法はどうなっているのでしょうか?

GACからファイルを探すのでしょうか?
レジストリからファイルを探すのでしょうか?
(通常COMは、レジストリですよね?)

あくまでCOMラッパーなので、ラッパーは、
レジストリをサーチするということでしょうか?

先ほど気づいたのですが、アプリインストールで、
MSO.dllというファイル(サイズ:11MB)がインストール
されています。これがCOM本体?でしょうか。
ただアプリのビルド時には出力されず、インストール時にだけ出力されています。

カレントなので、GACフォルダを確認する前にこれをロードするということでしょうか?

以上、お忙しいとは思いますが、よろしくお願いいたします。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-03-08 16:15
引用:

GACからファイルを探すのでしょうか?
レジストリからファイルを探すのでしょうか?
(通常COMは、レジストリですよね?)


もちろんレジストリです.

引用:

先ほど気づいたのですが、アプリインストールで、
MSO.dllというファイル(サイズ:11MB)がインストール
されています。これがCOM本体?でしょうか。
ただアプリのビルド時には出力されず、インストール時にだけ出力されています。


検索すると,アクティベーション関連のようですが….何でしょう.
_________________
囚人のジレンマな日々
1

スキルアップ/キャリアアップ(JOB@IT)