- - PR -
ILMergeでひとつにまとめたexeで.netリモーティング
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-11 01:49
元々.netリモーティングが正常に動作していたアプリだったのですが
exeと複数のdllで構成していたので、 「ILMerge」を使用してひとつのexeにまとめました。 (ソースコードの改変、リビルドなどはしていません。) そして、以前と同じように実行したのですが、 System.InvalidCastException : 引数の戻り値の型が無効です。 という例外が発生するようになってしまいました。 クライアントからサーバの呼び出しは成功しています。 サーバ呼出し後、サーバからリモートオブジェクトを クライアントに返却しているのですが その時に例外が発生しているようです。 サーバから返されるオブジェクトの型が クライアントが期待している型と一致していないために 発生しているようです。 .netリモーティングを行うアプリのexeとdllを 「ILMerge」を使用して、ひとつのexeにまとめるのは無理なのでしょうか? | ||||
|
投稿日時: 2006-06-11 02:28
.NET においては、型はアセンブリの名前やバージョン情報まで含めて特定されます。
サーバ側が exe と dll を一つに纏めたら、少なくとも dll 側に存在していた型は別の型になってしまうでしょう。 となるとクライアント側も参照先を変える必要があるでしょうね。 サーバ.exe にリモートオブジェクト型があるなら、クライアント.exe は サーバ.exe を参照することになるかな。 | ||||
|
投稿日時: 2006-06-11 03:23
と書いてから気付いたけどそう言うわけにはいかないですな。 やはり少なくともリモーティングでやり取りするオブジェクトについては素直に dll としておくのがベターでしょう。 |
1