7

こちらの手順に従って、既存の WCF サービス (既にコンソール アプリケーションとして正常に動作しています) を、私の開発マシンでもある Windows 7 マシンで Windows サービスにしました。

何を試しても、installutil を使用して最後の手順を実行すると、コマンド ラインに次のメッセージが表示されます。

インストールの初期化中に例外が発生しました:
System.BadImageFormatException: ファイルまたはアセンブリ 'file:///[path here]' またはその依存関係の 1 つを読み込めませんでした。
不正な形式のプログラムをロードしようとしました..

コンソール アプリケーションのメイン クラスにandメソッドを継承しServiceBaseて実装しています。OnStartOnEnd

マーク付きの属性ProjectInstallerから継承するクラスと、コンストラクターで提供されたコードを追加しました。System.Configuration.Install.Installer[RunInstaller(true)]

上記の記事に記載されていないことを私はすでに試しましたか?

  1. コマンドラインを管理者として実行する
  2. EXE ファイルがあるディレクトリに移動し、そこから installutil を実行する
  3. EXE ファイルとそれが使用しているすべての DLL に強力なキーを与える

また、 で指定してもログファイルは取得しません/LogFile=myLog.txt

どんなアイデアでも大歓迎です、ありがとう。

4

2 に答える 2

6

それは 32/64 ビットの問題のようなにおいがします。

ひょっとして、あなたのマシンは 64 ビットの Windows 7 ですか?? あなたのサービスは、古い COM コンポーネントなど、何らかの形で 32 ビットを参照していますか??

適切に動作させるには、Visual Studio で x86 プラットフォームを使用してコンパイルする必要がある場合があります...

于 2010-10-25T16:38:16.930 に答える
3

通常、BadImageFormat 例外は、アセンブリが古いバージョンの .NET Framework (4.0 のないマシン上の 4.0 アセンブリ) に読み込まれるときに発生します。同じマシンにデプロイしているため、正しいバージョンの installutil を使用していないと推測されます。

ここにある installutil を必ず使用してください。C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319

于 2010-10-26T06:17:08.643 に答える