ワンポイント.NET管理テク
── ここが気になる.NET管理のヒント ──

第4回 .NET Framework 2.0ランタイムのインストール
― アプリケーション・インストーラ活用編 ―

デジタルアドバンテージ 島田 広道
2007/07/12

 .NET対応アプリケーションを実行するには、.NET Frameworkランタイムの追加が必要だ。これまで本稿では、Windows Updateを利用して追加する方法、LANのファイル・サーバ上の共有フォルダから追加する方法について説明した(詳細は関連記事参照)。

Windows Updateで.NET Frameworkをインストールする
共有フォルダから.NET Frameworkをインストールする

 これらはいずれも、.NET Frameworkランタイムを単独で展開する方法だが、そもそも.NET対応の業務アプリケーションを展開することが目的ならば、アプリケーションのインストール時に、.NET Frameworkを自動的にインストールさせればよいだろう。システムにまだ.NET Frameworkがインストールされていなければ、同時にインストールさせるのである。

 開発環境のVisual Studioでアプリケーションのコンパイル時にオプションを選択しておくと、.NET Frameworkなど、アプリケーション実行に必要なコンポーネント(必須コンポーネントと呼ばれる)をアプリケーションと同時にインストールするようなインストーラ(MSIインストーラ)を作成できる。この機能を使って、.NET Frameworkを必須コンポーネントに指定しておき、出来上がったセットアップ・プログラムを共有フォルダなどに置いてクライアントから実行(インストール)すると、.NETアプリケーションと.NET Frameworkのインストールを同時に行える。だが、すでにコンピュータに.NET Frameworkがインストールされていれば、.NET Frameworkのインストール作業はスキップされる。

 ただしこの方法でアプリケーションと.NET Frameworkを展開するには、インストールを担当するエンドユーザーのアカウントに管理者権限を持たせる必要がある。

インストーラ作成は開発者に依頼

 アプリケーションのインストール時に、.NET Frameworkのインストールも同時に実行できるMSIインストーラを作成するには、アプリケーション開発者に依頼して作業してもらう必要がある。とはいえ、Visual Studioでオプションを設定するだけなので、大して手間はかからない。ただし開発には、Visual Studio 2005が必要である。またこの方法で展開できるのは、.NET Framework 2.0以上に限定される。

 具体的には、Visual Studioのインストーラ作成時に必須コンポーネントを指定するだけだ。以下のような操作画面で、必須コンポーネントを追加してもらう。

Visual Studio 2005における必須コンポーネントのオプション設定
.NET Frameworkの展開機能を持ったインストーラを作成するには、Visual Studio 2005でのインストーラ作成時に必須コンポーネントを指定してもらえばよい。
  必須コンポーネントのインストール機能を追加するにはこれをオンにする。
  インストール時に追加したいコンポーネントをここから選択する。
  コンポーネントのインストール元を選択する。このように、Webサイトからのダウンロード、インストーラと同じフォルダ、任意のフォルダから選択できる。

 画面から分かるとおり、この際には、必須コンポーネントのダウンロード先を指定できる。.NET Frameworkランタイムの場合には、マイクロソフトのWebサイトを指定することもできるし、LAN内部のファイル・サーバの共有フォルダを指定することもできる。前者を指定した場合は、ユーザーが.NET Frameworkをインストールするたびに、マイクロソフトのWebサイトから.NET Frameworkのインストール・イメージがダウンロードされる。後者の場合は、共有フォルダにある.NET Frameworkのインストール・イメージが使われる。特に理由がなければ、後者の方式をとった方が効率的だろう。これなら、多数のクライアントに展開する場合でも、インターネットからのダウンロードが発生しないからだ。

.NET Frameworkランタイムのダウンロード元の選択
.NET FrameworkランタイムをマイクロソフトのWebサイトから毎回ダウンロードするか()、LANなどの共有フォルダにあるものを利用するか()を選択できる。特に理由がなければ、の方法が効率的だ。

.MSIセットアップで必須コンポーネントを利用するには?

 Visual Studio 2005での必須コンポーネント、MSIインストーラ作成については、関連記事が詳しい。

展開用フォルダの構成

 ここからは、.NET Framework 2.0を必須コンポーネントとして指定して作成されたMSIインストーラを使って、実際にインストールを実行してみよう。なおここでは、サンプル・インストーラの名前をdnfwinst.msiとし、必須コンポーネントの入手元として、「アプリケーションと同じ場所から必須コンポーネントをダウンロードする」を選び、インストールするアプリケーションと同一フォルダに.NET Frameworkのパッケージを配置するようにしている。

 インストール用の共有フォルダの中身は次のようになる。

インストール用フォルダの構成
インストール用フォルダの例。セットアップ・プログラムのほか、必須コンポーネントを配置したフォルダなどで構成されている。
  dotnetfxフォルダには、.NETアプリケーションを利用するのに必要な必須コンポーネントのインストール・パッケージが配置されている。
  アプリケーションのプログラム本体(.exeファイルや.dllファイルなど)が収録されたWindows Installer形式のパッケージ。
  .NETアプリケーションをインストールするためのセットアップ・プログラム。これをダブルクリックしてアプリケーションのインストールを開始する。

 このフォルダにあるsetup.exeがアプリケーションのインストール・プログラムである。ユーザーにはこのファイルを実行してもらう。

 dotnetfxフォルダには、必須コンポーネント用のパッケージ(つまり今回は.NET Framework 2.0のインストール用パッケージ)が配置される。

dotnetfxフォルダに配置されたファイル
  .NET Framework 2.0ランタイム本体のインストール・パッケージ。
  Windows Installer 2.0のインストール・パッケージ。Visual Studio 2005がデフォルトで組み込む。
  .NET Framework 2.0ランタイム用の日本語Language Pack。ランタイム本体に続いて自動的にインストールされる。
  Windows Installer 3.1(バージョン2)のインストール・パッケージ。インストール対象のプラットフォームにWindows Installer 3.0以降が未インストールの場合、自動的にこれが最初にインストールされる。

 このフォルダ構成を崩すことなく共有フォルダにコピーして、setup.exeをユーザーに実行してもらうようにする。共有フォルダの設定は、一般ユーザーによる書き換えを制限する程度でよいだろう。詳細については、第3回の「インストール用のネットワーク共有フォルダを用意する」を参照していただきたい。

インストール作業の実際

 それでは実際に、setup.exeを実行してみよう。ファイル・サーバの共有フォルダ上に置かれたsetup.exeを実行すると、まず.NET Framework 2.0ランタイムなど必須コンポーネントの有無が自動的に判定される。すでに.NET Framework 2.0がコンピュータにインストールされている場合には、そのまま本来のアプリケーションのインストール処理に進む。

 .NET Framework 2.0がインストールされていなければ、.NET Framework 2.0のインストールが開始される。表示される使用許諾契約書の画面で[同意する]ボタンをクリックすると、自動的にコンポーネントのインストールが始まる。

.NET Framework 2.0ランタイムなどのインストールを促す画面
セットアップ・プログラムを起動したコンピュータに.NET Framework 2.0ランタイムが未インストールであり、かつ.NET Framework 2.0ランタイムが必須コンポーネントとして設定されていたため、この画面が表示された。もちろんインストール済みであればこれはスキップされ、すぐにアプリケーション本体のインストール・ウィザードが表示される。
  必要であれば、.NET Framework 2.0ランタイムに先だってこのWindows Installer 3.1のインストールが自動的に実行される。ただしその過程は画面には表示されない(.NET Framework 2.0ランタイムのインストール過程に含まれる)

 システム構成によっては、必須コンポーネントのインストールが終わった直後にシステムの再起動が要求されることがあるので、その場合は指示に従っていったん再起動する。その後、再起動前にsetup.exeを実行したのと同じユーザー・アカウントでログオンすると、自動的に本来のアプリケーションのインストールから再開される。

 必須コンポーネントのインストールが終わると、アプリケーションのインストールが始まる。これも特段難しいことはなく、画面の指示に従ってウィザードを進めるだけでインストールは完了できる。

アプリケーション本体をインストールするウィザードの例
これはインストール先のフォルダを選択する画面。.NET対応のアプリケーションだから特別な操作が必要ということはなく、従来のWin32アプリケーションなどと大きく異なることはない。
  インストール中のユーザー・アカウントだけにこのアプリケーションの利用を限定するか、それとも全ユーザーが利用できるようにするか、このチェック・ボックスで選択できる。

セキュリティ・パッチは別途適用する必要がある

 以上で.NET対応のアプリケーションと.NET Framework 2.0ランタイムの両方がインストールできた。ただし、.NET Framework 2.0ランタイム向けのセキュリティ・パッチはこの時点で適用されていない。

Windows Updateで.NET Frameworkをインストールする

 必須コンポーネントには独自のプログラムも追加できるので、.NET Frameworkランタイム向けセキュリティ・パッチまで同時に適用することも不可能ではない。しかし修正プログラムは必要に応じて随時提供されるので、そのたびにインストーラを作り直すのはあまり現実的ではない。これらについては、ほかのWindows OS向けセキュリティ修正などと同様に、事後に必要に応じて自動更新やWindows Update/Microsoft Updateなどで適用するのがよいだろう。.NET Frameworkのパッチ適用の手順については関連記事を参照していただきたい。End of Article

 
     
目次ページへ  「ワンポイント.NET管理テク」
Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

スキルアップ/キャリアアップ

.NET管理者虎の巻

- PR -
- PR -