2016-06-11 5 views
-1

内の別のプロジェクト/ソリューションからAccessフォームIはPROJECTAとProjectBのC# - 異なるドットネットターゲッティング

PROJECTAのプロパティと呼ばれる2つのプロジェクト(dotnet4、X64) ProjectBのプロパティ(DOTNET 3.5、X86)

を持っています私がしたいのは、projectAからprojectB.from1にアクセスする方法です。

注:両方のプロジェクトを独立してテストしたところ、正常に動作しました。 そしてまた、私は、既存のプロジェクトとしてPROJECTAにProjectBのを添加することによって試験している、メインプログラムが細かい実行されますがprojectB.form1は、インポートProjectBの

MainForm vsf = new MainForm(); 
      vsf.Show(); 
の名前空間を使用することにより、以下のように、私が試してみましたエラー

を持っています

エラーメッセージは次のとおりです。だ enter image description here

+1

どのようなメッセージボックスを生成しているのですか?あなたはそれにそのタイトルを付けましたか?マイクロソフトが提供するコードのいずれかがそのタイトルのメッセージボックスを生成する方法はありません。とにかく、これはうまくいきません---単一のプロセスで異なるビット数のコードを混在させることはできません。これらのプロジェクトの1つは64ビット用にコンパイルされ、もう1つは32ビット用にコンパイルされます。それらの1つを再コンパイルする必要があります。 –

+0

はい、 'そのタイトル'、私は疑問に思っていました:) - 純粋な.NET(ネイティブコードなし)であれば、 'Any CPU'でビルドします(または少なくとも同じものにします)。もしあなたが持っていればC++のlibsはそれより複雑で、そこから始めてあなたのやり方で作業する必要があります(最終目標は既にx86やx64のようにコメントされています)。 – NSGaga

+0

ネイティブコードまたはマネージコードが関わっているかどうかはまったく違いはありません。どちらの場合も、すべてのプロジェクトを再コンパイルして、同じアーキテクチャを対象にする必要があります。 –

答えて

1

はあなたのProjectBとターゲットフレームワークのバージョンの不一致の問題のように見えます。 ProjectBのターゲットフレームワークもProjectAで参照する前に、dotnet4に変更してください。また、ランタイムアーキテクチャに不一致があります。つまり、X64で実行し、もう1つはX86で実行する1つです。両方のプロジェクトに互換性があることを確認してください。

+0

あなたが言ったように私も前に試しましたが、うまくいきません。ありがとうございました! – ensberiyu

+2

@ensberiyu、なぜですか?プロジェクトのアーキテクチャだけでなく、フレームワークのバージョンも変更する必要があります。次に、リファレンスを再コンパイルして追加します。それは正常に動作するはずです。 – Rahul

+0

私はProjectBがプロジェクトとライブラリがそのドットネットのメンバーであるため、Dot-net 3.5とX86アーキテクチャで作業していることを試しました。 – ensberiyu

関連する問題