0

サーバー上で MSMQ メッセージを処理するカスタム Windows サービスを作成するのに忙しいのですが、インストール (InstallUtil を使用) が次のエラーで失敗し続けます。

「System.InvalidOperationException: 'x'.exe アセンブリでインストーラーの種類を取得できません。内部例外 System.Reflection.ReflectionTypeLoadException がスローされ、次のエラー メッセージが表示されました: 要求された型の 1 つ以上を読み込めません。LoaderExceptions プロパティを取得します。詳細については。"

サービスで独自のアセンブリを 3 つ使用しています。それらはすべて「ローカルにコピー」に設定されており、他のすべての参照アセンブリは GAC にあります。GAC にない他のすべての参照アセンブリが、サービスの .exe ファイルを含むフォルダーにあることを確認しました。

また、アセンブリに署名しようとしました(それが価値がある場合...)

私も Google を調べてみましたが、ほとんどの場合、問題はサービス パックによって解決されるか、いくつかの独自のソフトウェアをインストールすることで解決され、依存関係の欠落の問題は明らかに解決されました。

正常に機能する「外部」アセンブリを参照せずに、単純なPOCサービスを作成しました...

Windows 7 マシンで開発とテストを行っています。

何か案は?ありがとう!

編集: わかりました... 例外処理とログ記録に PostSharp を使用していました... PostSharp と私の側面への参照を削除しましたが、問題なくインストールされました... o_O PostSharp のようなものが再生されない理由はありますか? Windows サービスとの相性は?

4

3 に答える 3

0

私の英語でごめんなさい。私はこの問題に 2 日間取り組みましたが、installutil は、installutil とサービスおよび依存ファイルが 1 つのディレクトリにある場合にのみ機能することがわかりました。

installutil サービス -> 正常に動作します installutil ServicePath\service -> ServicePath ディレクトリに依存関係がある場合は動作しません。

于 2014-04-30T07:00:37.803 に答える
0

OK、問題が見つかりました... メソッドに同じ PostSharp アスペクトを 2 回適用しました。だから私は持っていたMethod1Method2、両方に[MyException]アスペクトが適用されています。Method1アスペクトMethod2が 2 回「適用」されるため、Service Installer ではうまく機能しませんでした。アスペクトを削除したところMethod2、すべて正常に機能しました!

于 2013-06-27T06:26:04.883 に答える
0

インストーラーなしで、サービスをすべての依存アセンブリに登録しようとしましたか? 無事に登録できましたか?これが機能した場合、サービス登録アクションは、インストール作成手順でのインストール完了後のアクションですか?

于 2013-06-27T06:12:48.780 に答える