Windows 7上でVS 2010でC#プログラムをコンパイルしてから、別の32ビットマシンでファイル(すべてビルドのbin \ Debugディレクトリから取得)を実行しています。C#プログラムを実行しているときにSystem.BadImageFormatExceptionが発生しました
Debugディレクトリのファイルには、このプログラムが依存するMicrosoft.Office.Project.Server.Library.dllファイルも含まれています。
VS 2010プロジェクトのビルド構成では、プラットフォームはx86に設定されています。それでも、32ビットマシンでは、System.BadImageFormatExceptionが発生します。
Unhandled Exception: System.BadImageFormatException: Could not load file or assembly
'Microsoft.Office.Project.Server.Library, Version=12.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The module was expected to
contain an assembly manifest. File name: 'Microsoft.Office.Project.Server.Library,
Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
これはどのような理由がありますか?
他の依存関係(GACにインストールされている可能性あり)は、開発マシンでは利用できますが、展開されたマシンでは使用できませんか? –
System。*参照以外には、VS Studioプロジェクトの「参照」セクションの下にMicrosoft.Office.Project.Server.Libraryエントリしかありません – byneri
ただし、依存関係に依存する可能性があります。私は他のプロジェクトで作成したDLLを使用する(幾分)大規模なプロジェクトをいくつか持っています。これらのDLLは他のDLL自体に依存していますが、「新しい」プロジェクトでは「従属」ではなく直近の依存関係のみが表示されるため、これらの依存関係が参照セクションに存在することはありません。これが機能するには、ターゲットマシンにProject Serverをインストール(再インストール)する必要があります。 –