AnyCPU 対 x86 コンパイラの設定に問題がありますが、それを正しく理解していれば、問題は通常とは逆のようです。
現在、すべてが Visual Studio 2010 を搭載した Win 7 64 ビット マシン上にあります。問題のアプリケーションは Dot.NET 3.5 です。Visual Studio は英語ですが、エラーの一部は OS の言語であるドイツ語です。
プロジェクト E: 3 つのサブプロジェクト (DLL として 2 つ、exe として 1 つ) を含むメイン プロジェクト/ソリューション。アクセスするには OleDB が必要なため、x86 としてコンパイルされた VB.net 3.5。元々は、WinXP の 32 ビット マシン上の VS 2008 または VS 2005 で開始されました。
プロジェクト ADB: vb.net exe は、スタンドアロンとして起動できるようにする必要があり、プロジェクト E からフォームにアクセスできる必要があります。これが関連する場合、32ビットマシン/ WinXPにまだあったと思います。
OledDB to MS Access が必要なため、スタンドアロン exe は x86 である必要があります。
しかし、ソリューションの一部として x86 としてコンパイルすると ([プロジェクト プロパティ] > [コンパイル] > [高度なコンパイル オプション])、ビルド エラーが発生します (以下を参照)。AnyCPU に変更すると、OleDB へのアクセスを含むソリューションの一部として機能します (つまり、x86 ですよね?) が、スタンドアロンでは OleDB を使用できなくなります (つまり、x86 ではありませんよね?)。 .
プロジェクト Au: E のリファレンスに含まれる vb.net DLL、OleDB は不要。x86 としてコンパイルすると、プロジェクト ADB と同じエラーが発生します。AnyCPU としてコンパイルされた場合に機能します。32 ビット マシンの VS 2008 に追加されました。
プロジェクト S: C# DLL、OleDB は必要ありません。x86 としてコンパイルされ、E のリファレンスに含まれているため、これは機能します。Web からのダウンロードで、32 ビット マシンの VS 2008 に追加されました。
ビルド エラーは次のとおり
です。Es wurde versucht, eine Datei mit einem falschen Format zu laden.
翻訳済み:
ファイルまたはアセンブリ 'XYZ' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。
AnyCPU スタンドアロンとして ADB を起動したときに発生する OleDb エラーは次のとおりです
。
これは、通常の非 64 ビット JET エラー警告です
。「Microsoft.Jet.OLEDB.4.0」プロバイダーがローカル コンピューターに登録されていません。
さて、私が理解しているように、通常、メイン プロジェクトが AnyCPU でサブ プロジェクトが特定の場合、AnyCPU から x86 (この場合は x64) にアクセスしようとするため、ビルド エラーが発生します。しかし、ここでは動作しない x86 から x86 にアクセスしようとしていますが、x86 から AnyCpu (x64 である必要があります) にアクセスすると動作しますか?
必要に応じて、詳細情報とすべての構成ファイルなどを提供できます。
紛らわしい書き方をして申し訳ありませんが、この問題について非常に混乱しています。