2

VS2005からプロジェクトをアップグレードしようとしています。これは、C ++ dll、A.dllを参照するC#プロジェクトに依存するVB.NETプロジェクトBです。「アセンブリA_class、バージョン2.0.0.0、Culture = neutral、PublicKeyToken=nullが見つかりません」というエラーが表示されます。C ++プロジェクトの対象プラットフォームは4.0であり、そのプロジェクトは他のプロジェクトに依存しているため、ダウングレードすることはできません。しかし、私はVB.NETプロジェクトのプラットフォームを4.0に設定しました。バージョン2.0.0.0は他に何を参照していますか?まったく新しいプロジェクトを作成しようとしましたが、正常にビルドした後、vbフォームをプロジェクトに追加しました。C ++ dllは出力ディレクトリにあり、VBプロジェクトが出力ディレクトリで見つからない場合、このポイントに到達しません。ビルド中。エラーが発生しない(ただし、フォームが読み込まれない)か、2つのエラー(フォームごとに1つ)が発生します。

error MSB3103: Invalid Resx file. Could not load file or assembly 'A-class, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format. Line 136, position 5.

私を助けてください、私に提案をしてください、私はどこを見るべきかわかりません。どうもありがとうございます。

4

1 に答える 1

4

「間違った形式のプログラムを読み込もうとしました」

99%の確率で、これは64ビットツールを使用して32ビットアセンブリをロードしようとしていること、またはその逆を意味します。エラーメッセージのバージョン番号は、ロードしようとしているアセンブリのバージョン番号を意味します。対象となる.NETバージョンとは何の関係もありません。この場合、リソースコンパイラに問題があるようです。

Any CPUではなくx86を明示的にビルドするようにソリューションを構成してみて、問題が解決するかどうかを確認してください。

于 2012-03-15T01:18:40.903 に答える