Visual Studio 2010 を使用してアプリケーションを開発しています。すべてのプロジェクトは、プラットフォーム x86 の .NET Framework 3.5 に設定されています。
http://code.google.com/p/pdfviewer-win32/downloads/listから .NET 3.5 32 ビット バージョンをロードした外部ライブラリ PDFViewerNET を使用しています。
その PDFLibNet.DLL を独自の .NET 3.5 アセンブリに含めたところ、問題なくビルドされました。次に、結果のアセンブリ DLL をアプリケーション プロジェクト (.NET 3.5 x86) に含めます。アプリケーションはVSで正常にコンパイルおよびビルドされています。VS 内で実行およびデバッグでき、ドライブから開始できます (すべてのビルドでリリース構成が使用されました)。アセンブリからメソッドにアクセスするとすぐに、問題なく動作します。
このアプリケーションは、もともと「AnyCPU」プラットフォームを使用する .NET Framework 4.0 用に開発されました。.NET 3.5 を必要とする EMC Documentum 6.7 アセンブリを使用する予定であるため、.NET 3.5 に戻しました。しかし、これはまだ実装されていません...
現在... デプロイとチェック ビルドに TeamCity Enterprise 7.1.5 (ビルド 24400) を使用しています。ビルド構成は、以前に使用した MSBuild .NET 4.0 (Toolset 4.0) x64 設定で問題ありませんでした。ここで、MSBuild .NET 3.5 (Toolset 3.5) x86 に切り替える必要がありました。
ビルドは正常に実行されています。しかし、結果のアプリケーションを起動し、アセンブリ (VS 内で使用するのと同じバージョン) からメソッドにアクセスしようとすると、エラーで失敗します。
Could not load file or assembly "blahblahblah, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null" or one of its dependencies. An attempt was made to load a
program with an incorrect format
blahblahblah.DLL は、PDFLibNet.DLL を含む独自のアセンブリです。すべての DLL ファイルは、結果の EXE と同じフォルダーにあります。VSでビルドした場合の593KBと比較して、EXEは575KBです...
何か案は?