なんか作ったはいいが、別の端末で動かそうとすると、バージョンが入ってねーって怒られる場合の対処。もちろん.Net4.0以降でしか入ってない機能を.Net2.0で動かそうとするのは無理。

コンフィグにアプリがサポートするバージョンを明示しておかないとダメらしい。↓の感じ。

<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    <supportedRuntime version="v2.0.50727" sku=".NETFramework,Version=v2.0.50727"/>
  </startup>
</configuration>

VisualStudioで言うと、「App1.config」って感じのファイルがあればそれ。なければ追加で「アプリケーション構成ファイル」を追加する。実際には「実行ファイル名.exe.config」みたいなファイルがそれ。

MSDN的には

このアプリケーションがサポートする共通言語ランタイム 
(CLR: Common Language Runtime) のバージョンを指定する文字列値。
CLR の最初の 3 つのバージョンは、"v1.0.3705"、"v1.1.4322"、
および "v2.0.50727" で指定します。
.NET Framework 4 以降では、必要となるのはメジャー バージョン番号と
マイナー バージョン番号のみです (つまり、"v4.0.30319" ではなく "v4.0")。
短い文字列を使用することをお勧めします。
.NET Framework バージョン 3.0 および 3.5 では CLR のバージョン 2.0.50727 が使用されます。

だそうですよ。