1


2

アプリケーションのサイズ、ダウンロード時間、開発時間が増大するため、可能であれば.NETランタイムを私のアプリケーションに再配布しないようにしたいと思います。 マイクロソフトは、ユーザーにWindowsアップデートを介した.NETランタイムのアップデートを強制しますか? そうでない場合、再配布するためのオプションのいくつかは何ですか .NET runtime? Has Microsoft made it any easier to re-dstribute runtime .NETアプリケーションでは? また、.NETランタイムは下位互換性があると認められていますか?

ここで答えを要約しているだけです。 少なくとも.NETランタイムの存在を確認するには、ブートストラップが必要です。 代替オプションは、ランタイムをパッケージ化し、存在しない場合はデプロイすることです。 包装には複数の選択肢があります InnoSetup、WIXなどのような他のパッケージオプションもあります(どのオプションが優れていて無料かはわかりません)。 ランタイムインストールでは再起動が必要であり、選択したインストールオプションでは再起動後にアプリケーションのインストールが再開されます。

5 Answer


3


Windowsインストーラプロジェクトを作成するだけです。 あなたはVS2005とVS2008のオプションとしてこれを持っているべきです。 それはあなたのアプリケーションをインストールするときにシステムに.NETランタイムとその他の必要なソフトウェアがそれに関することを確認するようになります。 これはあなたのアプリケーションではなくあなたのインストーラパッケージにそれを追加します。 これは通常あなたがあなたのアプリケーションをインストールするか、あなたがInstall Shieldを使う方法です。

http://msdn.microsoft.com/en-us/library/k3bb4tfd.aspx[こちらはガイドです]。
http://img154.imageshack.us/img154/2066/newprojectr.png[alt text http://img154.imageshack.us/img154/2066/newprojectr.png]


2


また、あなたはそれについて心配する必要があります。 ランタイムがないと、アプリケーションは不思議なことに動作しません。 ランタイムの特定のバージョンがプレインストールされているとは決して思わないでください。

上記のように、VSのインストーラプロジェクトウィザードは、必要な場合にのみそれをダウンロードするセットアップファイルを作成します。 NSISとInno Setupには同じことをするスクリプトがあります。 ランタイムをインストールするときにreboot-and-continue-setupを処理する必要があることに注意してください。 インストーラウィザードがこれを処理すると思います。


1


インストーラパッケージを作成すると、ランタイムが必要な場合にのみインストールされます。 すなわち まだシステムにインストールされていない(またはバージョンが違う)

編集:はい、あなたはこのパッケージを作成すべきです、それはこの正確なことのためにあなたの人生をずっと楽にします。 あなたがVSでこれをするであろう方法はFile→ Projectであり、intstaller projectを選択する。 ウィザードがオプションを案内します。


1


何らかのブートストラップを使用して、.NETがインストールされているかどうかを確認し、必要に応じてダウンロードすることができます。

例えば、http://www.indigorose.com/msi-factory [MSI Factory]ブートストラップでは(私はMSI Factoryを提唱していませんが、醜いプログラムです)。 しかし、私たちのように市販のソフトウェアを開発しているのであれば、付属のブートストラッパーはライセンスコストに見合う価値があります。 私たちは、WiX the MSI Factoryブートストラッププログラムを使って、1つの圧縮EXE(30Mb)と、MSIをダウンロードする小さな1Mbの "ダウンローダ" EXEの両方を配布します。 どちらのEXEも.NET 2.0の存在を確認し、必要ならダウンロードします。 また、.NETをチェックし、存在しない場合はインストールをブロックするスタンドアロンのMSIも配布します。

基本的には以下のものがあります。

  • Windows XP - .NETには付属していません。 お客様は手動でインストールする必要があります(これはオプションのWindows Updateコンポーネントとして表示されます)。

  • Vista - .NET 2.0に同梱(ただし_not_ 1.1)

  • Server 2003 - .NET 1.1に同梱されています

NET 3.5がインストールされているユーザーは10%未満です。 あなたのアプリケーションが技術的で、こっけいな視聴者をターゲットにしているならば、私は人々の50%が.NET 3.0を持つと言うでしょう。 消費者/小売/非技術市場をターゲットにしている場合は、.NET 2.0では約30%、.NET 3.0以上では10%と推定できます。

上記の数値は、当社のWebサイトへのブラウザのトラフィックに基づいており、ほとんどの場合技術者ではありません。 これはおそらくあなたの市場のためのアイデアを得るための最善の方法です。 IEは常にUser-agent文字列で.NETバージョンを報告するので、ウェブログを分割して分析を開始します。


0


場合によります。 私が仕事をする場所では、ランタイムをダウンロードするためのインターネット接続を持っていない可能性がある一部の顧客がいるため、必要条件としてインストーラに含めます。

できることはいくつかあります。

  1. ターゲットマシンに.NETのバージョンのテストを含め、インストールされていない場合はインストールを終了します。

  2. .NETランタイムを含むバージョンのインストールを作成し、必要に応じてインストールします。

  3. .NETランタイムをダウンロードするバージョンのインストールを作成し、必要に応じてインストールします。

顧客がすべてオンラインになっていることがわかっていれば、.NET用のオプション3、およびCrystal ReportsやSQL Expressなどのその他の前提条件をすべて実行します。 私はそれが含まれている場所にインストールがあり、インストールは100MB以上です。 70MBが前提条件です。