.NET 4からCLRが新しくなったことで、基本的に.NET 3.5で作られたアプリのプラグイン、アドインを.NET 4で作ることはできません。
これを回避するためにはいくつかの方法が考えられます。
- 対象アプリを.NET 4で動かす。
- .NET 3.5でプラグイン、アドインを作り、.NET 4のアプリと通信する。
- .NET 4で作ろうとしていた部分をネイティブ、COMで作って利用する。
まっとうな方法は2や3になるかと思いますが、.NET 4で無理矢理動かす方法を少し見てみましょう。
対象のアプリがhogehoge.exeだとすると、hogehoge.exe.configに以下のような記述を作ります。
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
参考URL:http://msdn.microsoft.com/ja-jp/library/jj152935(v=vs.110).aspx
これでたいていのアプリは.NET 4で動きます。
ただし、勝手に.NET 4で動かしているので無保証となる点にご留意いただき、利用者の自己責任で使うことを前提としてください。
なお、プラグイン・アドイン方式でセキュリティ問題をケアしている場合、CAS周りでNotSupportedExceptionが発生する可能性があります。
loadFromRemoteSourcesを使って脆弱にして動かすか、素直に2や3のアプローチを採るか、よく考えましょう。