.NET 3.5 ターゲット フレームワークを使用してビルドされたユーティリティ アセンブリ "Reg.dll" があります。
Reg.dll は、ターゲット 3.5 ターゲット フレームワークを使用する一部のアプリケーション、および 4.0 をターゲットとするその他の新しいアプリで使用されます (リリースの制約により、3.5 アプリケーションのアップグレードは現在オプションではありませんが、最終的には行われる予定です)。 Reg.dll のコードは、アプリのターゲット フレームワークに応じて、実行時に 4.0 または 3.5 CLR コンテキストで実行されます。
Reg.dll が 4.0 または 3.5 CLR (4.0 でない場合は想定できます) で実行されているかどうかを検出し、4.0 のみのメソッド (Microsoft.Win32.RegistryKey .FromHandle) 4.0 CLR 内で実行されている場合。
同僚は、2 つのアセンブリ (1 つは 3.5 を対象とし、もう 1 つは 4.0 を対象とする) を構築し、実行時に適切なアセンブリを動的にロードすることを推奨しています。これは機能するように聞こえますが、System.Reflection 機能のようなものを使用してこの特定のメソッドの存在を検出し、何らかの方法で動的に呼び出すこともできると思います。
これは可能ですか、それとも複数の組み立てルートを使用したほうがよいですか? 私はこれまで .NET のこの側面をあまり扱ったことがなかったので、モデルとして使用するコード フラグメント/参照も役立ちます。