投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/12/29 13:00:41
> パソコンの苦手な人には「.NET Frameworkをインストールしてください」と言っても困り果てると思います。
それはもちろんその通りだと思います。
パソコンが苦手な人は、Windows Update の存在も知らないでしょうし、実際、フリーソフト作家の
ところには、.NET どころか、OS の種類すら把握しておられない方からの質問もあるようで。


ただし大前提として、VB.NET 製のアプリというものは、ユーザーの PC に .NET Framework が
インストールされていないと動かせません。(アプリケーションの種類によっては、
.NET Micro Framework や .NET Compact Framework などの互換ランタイムが
必要となることもあります)

そのため、作成したアプリケーションを広く一般に配布する際には、
「.NET Framework が無ければ自動的に .NET のランタイムもインストールされる」
ようなセットアップ パッケージを用意するなどの処置がとられます。
(これは、ClickOnce 発行の場合にも同じことが言えます)

# Active Directory 環境の場合は、管理者側から配布する手法も使えるのですが。

これがベテランだと、「インストーラーなんて邪魔だ。exe だけダウンロードさせて欲しい。」と
いう人もいるのですが…初心者は逆に、インストーラーがあった方が助かる場合が多いようです。

ということで、上級者向けにはアプリ本体のみをzipのみ配布し、一般向けには
インストーラー形式で配布するという構成をとっているソフトも見かけますね。


> .NET Frameworkがインストールされていないパソコンでも動かせるようにする

.NET Frameworkがインストールされていないパソコンでも動作させる唯一の方法は、
その VB アプリケーションを「ASP.NET」によるインターネットブラウザーアプリケーションに
する方法だけですね。通常の WinForm アプリの場合は、実行環境に .NET Framework が必須です。

ただし最近の OS は、特定バージョンの .NET Framework が最初から組み込まれているため、
相手の環境が分かる場合は、その OS に合わせたバージョンの .NET Framework アプリを
用意しておくことで、ランタイムのインストールを気にせずに使ってもらうことができます。
http://www.atmarkit.co.jp/fwin2k/dnitpro/dntech/002instdnfw/002instdnfw.html


また、開発者は .NET Framework の Service Pack も意識せねばなりません。

たとえば VB2005 で作成したアプリが、OpenFileDialog.AutoUpgradEnabled プロパティを
利用していたとします。しかしこのプロパティは、.NET 2.0 SP1 で追加された機能のため、
Service Pack 未適用な .NET Framework 2.0 環境ではエラーになってしまいます。
(SP1 で追加された機能を使っていない場合は、SP 無し環境であっても一応動作します)

もちろん、.NET Framework ランタイムも一緒に配布しているなら、SP 不一致による問題を
抑えることができます。しかしランタイムの配布を省略した上で、多くのユーザーに使ってもらおうと
するのであれば、こうしたバージョンごとの違いにも気を配っておいた方が良いでしょうね。