HOME >> Tips >> Microsoft.NET

複数の.NET Framework のバージョンでアプリケーションを作成する方法

2016/1/20
文書番号:20447



.NET アプリケーションを作成する際、.NET Framework のバージョンを決めて作成します。

「このアプリケーションを使用するにはこのバージョンの .NET Framework をインストールしてください」
と、言えればそれで済むことですが、そうでない場合もあります。

「アプリケーションに合わせて .NET Framework をインストールするのではなく、インストールされている .NET Framework に合わせたアプリケーションを準備する。」
という具合です。


.NET Framework は 2.0 で作成しておくと、2.0でも3.0でも3.5でも動作しますが、4.0以降しかインストールされていない環境では動作しません。
逆に4.0以降でアプリケーションを作成すると2.0や3.0がインストールされているだけでは動作しません。

大規模な業務システムなどでは複数バージョンで作成することはないと思いますがツールのようなものの場合はあると思います。


当サイトで配賦している 「Auto Windows Update」 がそうです。

新規コンピューターをセットアップする時に大量の Windows Update のインストールを自動化したいのですが、このソフトを動作させるために Windows Update から .NET Framework の指定バージョンを ダウンロードしてインストールしないといけないのではなんだかおかしい気がします。

ということで、「Auto Windows Update」は機能は同じですが .NET Framework の各バージョンで動作するアプリケーションを作成しています。


しかし、機能が同じものをいくつも作成し、修正や機能追加をすべてに適用していくのは非常に大変です。

そこでソースはひとつでありながら各バージョンのアプリケーションを簡単に作る方法です。

前置きが長くなりましたが実際の手順です。

【対応方法】

  1. まず最初に、実際にコーディングするプロジェクトを作成します。
    .NET Framework のバージョンを 4.0 に設定したプロジェクトを作成しました。

    クリックで拡大

  2. 「ソリューション」を右クリックして「追加」から「新しいプロジェクト」を選択します。

    クリックで拡大

  3. 次に .NET Framework のバージョンを 2.0 に設定したプロジェクトを追加します。

    クリックで拡大

  4. 実際のフォルダはこのようになっています。
    フォルダ名の最後の数字が .NET Framework のバージョンを指しています。

    クリックで拡大

  5. ここがポイントです。
    .NET Framework 2.0 のプロジェクトでフォームを追加する際に「追加」から「既存の項目」を選択します。

    クリックで拡大

  6. このときに .NET Framework 4.0 のプロジェクトのフォームを選択するのですが、「追加」ボタンの右の▼矢印をクリックして「リンクとして追加」を選択します。

    クリックで拡大

  7. .NET Framework 2.0 側のプロジェクトに追加されたフォームにはショートカットのような矢印が付いています。
    実体はコピーせずにプロジェクトに追加されている状態です。

    クリックで拡大

  8. この状態でソリューションをリビルドすると、.NET Framework 2.0 のプロジェクトも 4.0 のプロジェクトも同時にビルドされ、アプリケーションが作成されます。


上記の方法で作成する場合、ソースコードはすべての .NET Framework バージョンで有効な文法にする必要があります。

例えば、.NET Framework 4.0 からの新機能を利用すると 2.0 側のビルドでエラーになります。

プロジェクトのプロパティで .NET Framework のバージョンを切り替えながらビルドしても同じようにできますが、かなり手間でした。
複数のバージョンの .NET Framework 用にそれぞれアプリケーションを作成する際にどうぞ。