起動時にTypeLoadExceptionが発生して起動できない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-11-17 23:08
皆さん初めまして、今回初めて投稿させていただきます。
表題の件について、皆さんの助言をください。 当方では、 Windows XP SP2 .net2.0(C#) VSTO(Excel) を使用してWindowsアプリを作成しています。 現在、困ったことにアプリケーション起動時にTypeLoadExceptionが発生してアプリが起動しないという現象が発生しました。 そして、この現象は開発環境(VS2005)がインストールされていないPC上でのみ発生しています。 色々実験した結果、以下の様にプロジェクトを作ると発生するようです。 1.クラスライブラリプロジェクト(仮にOfficeProjectというプロジェクト名)で、VSTO(Excel)を扱うクラス 「ExcelModel」を作成します。 2.Windowアプリケーションプロジェクト(仮にAPP1というプロジェクト名)を作成し、参照設定でOfficeProjectを参照します。 3.App1にOfficeProjectのExcelModelを継承したXlsModelを作成します。 4.ExcelModelのメソッドに、COMオブジェクトを返り値にするVirtualメソッドを追加します。 例) public virtual Microsoft.Office.Interop.Excel.Sheets GetSheets( ) { return null; } 5.XlsModelのメソッドに、GetSheetsをoverrideしたメソッドを追加します。 例) public override Microsoft.Office.Interop.Excel.Sheets GetSheets( ) { return null; } ※メソッドの処理は、特に気にしないでください。 6.Form1のメンバ変数にしても、コンストラクタ内のローカル変数でもいいので、起動時にXlsModelが参照されるようにしてください。 7.App1をビルドし、開発環境がインストールされていない環境で実行をします。 以上の手順で、TypeLoadExceptionが発生します。 キーワードとしては、 返り値にCOMオブジェクトを使用する。 XlsModelとExcelModelを別プロジェクトにする。 です。 自力で調べていたのですが、ハマってしまい抜け出せない状態です。。。 皆さんの助言をいただけないでしょうか? また、過去に出ている話題でしたら、教えていただけ無いでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2008-11-18 14:08
この環境に Office.dll や Microsoft.Office.Interop.Excel.dll といった Office 関連の DLL は存在していますか? _________________ Nakamura Blog | ||||
|
投稿日時: 2008-11-18 14:48
返信ありがとうございます。
チョー恥ずかしい事に、ご指摘通りプロジェクトでMicrosoft.Office.Interop.Excel.dllがローカルコピーされていませんでした。(^^ ![]() 初歩的でくだらない質問をしてしまって本当にスミマセン。。。 なかむら様 ありがとうございました(_ _) |
1