2011-04-08 21 views
2

私は.NET 4.0で書かれたアプリケーションをDLLファイルにコンパイルしています。このDLLファイルをWindows Forms .NET 2.0アプリケーションで使用できるようにします。 4.0 DLLにいくつかの文字列値を渡す以外は、本当に多くのアプリケーションと対話する必要はありません。 DLLはかなり多くのWindowsの束で、私はUserControlsに変換しました。別のexeファイルを使用せずに、別々にパッケージ化しなくても、2.0アプリケーションからUserControlsを表示するために参照できるようにする必要があります。これを行う最善の方法は何ですか? DLLへの参照を2.0アプリケーションに追加しようとすると、それが私に与えられ、DLLが.NETの新しいバージョンでビルドされているというエラーが表示されるため、そうすることはできません。 COMオブジェクトがどこに来るのでしょうか?私は本当に感謝するすべての情報とリンク、ありがとう。.NET 4.0を呼び出すWPFクラスライブラリ.NET 2.0アプリケーションから

答えて

2

2.0アプリケーションから実際にアプリケーションを呼び出すことができる場合は、2.0アプリケーションとしてコンパイルするのが最善の方法です。 Visual Studio 2010(および2008)では、マルチターゲットソリューションの概念がサポートされています。つまり、さまざまなバージョンのCLR用にプロジェクトをコンパイルすることができます。

私は2.0

ため一度4.0

  • のために一度二度

    • あなたは2.0アプリケーションで直接DLLを使用することができるこの方法を自分のアプリケーションをコンパイルするアプローチを取るだろう。面倒なCOMトリックは不要

  • +0

    それは事です。 DLLは.NET 4.0でなければならず、呼び出し側アプリケーションは.NET 2.0以上でなければなりません。その基本的に2つのアプリケーションは、私は1としてパッケージ化する必要がある別のフレームワークに基づいています。 – bflosabre91

    0

    .net 2.0から.ne 4.0を呼び出すことは本当に可能です。問題はそれではありませんが、あなたはusercontrolsを送ることができると思いません!

    私はここで、簡単なクラスを4.0から2.0のアセンブリに渡すいくつかのソウルティーでこれを行います。そのトリックは、4.0アセンブリをServicedComponent(COM +)として登録し、これらのアセンブリ間でインターフェイス(.net 20)を共有することです。次に、.net 2.0アセンブリでServicedComponentをインスタンス化し、 "ミドルウェア"アセンブリからインターフェイスのインスタンスを取得します。

    前述のように、これを使用してインターフェイスを転送することはできますが、UserControlとして複合型をマーシャリングするのは非常に難しいと思います。

    関連する問題