0

VS2008 ウィザードを使用して、サービスを作成しました (現在、開始と停止以外は何もしません)

(プロセス外の) COM オブジェクトを使用したい

#import "object.tlb" を追加すると、再コンパイルにより

エラー C2812: #import は /clr:pure および /clr:safë ではサポートされていません

/clr (純粋でも安全でもない) を使用するようにプロパティを変更すると、コンパイルは可能になりますが、サービスのインストールは "Ättempt to load an unverifiable executable with fixups" で失敗します。

アドバイスをいただければ幸いです

ピーター

4

1 に答える 1

0

これは、InstallUtil.exe の MSDN 記事で明示的に言及されています。

Installutil.exe で C++ を使用して作成された Windows サービスをデプロイできないことに注意してください。Installutil.exe は、C++ コンパイラによって生成された埋め込みネイティブ コードを認識できません。Installutil.exe を使用して C++ Windows サービスをデプロイしようとすると、BadImageFormatException などの例外がスローされます。このシナリオで作業するには、サービス コードを C++ モジュールに移動します。次に、インストーラー オブジェクトを C# または Visual Basic で記述します。

于 2012-05-25T09:29:13.850 に答える