2009-10-05 9 views
9

.NET 3.5用にソフトウェアをコンパイルすると、.NET 2.0がインストールされているシステムでクラッシュするまでにどのくらいの時間がかかりますか?.NET 2.0のみがインストールされているシステムで.NET 3.5向けにソフトウェアを構築

私が開発しているアプリケーションでは、WPFを使用し、.NET 3.5が必要ですが、ユーザーがインストールされていない場合は、クラッシュするよりも使いやすいダイアログを表示したいと考えています。

これを行う標準的な方法はありますか、それとも正式なMicrosoftの文書ですか?


EDITは:理想的な世界では、私はちょうど任意の.NET依存関係は、インストール時に満たされていることを確認したいです。一部のアプリケーションにはインストーラーがなく、ユーザーがアプリケーションをインストールした後に.NETをアンインストールする可能性があるため、以下の回答が役立つとわかります。

+0

これは、あなたのプログラムが(例えばLINQのような)3.5アセンブリに依存しているかどうかで決まるでしょう。私は自分自身にも興味があります。 –

答えて

6

3.5が必要なdllを使用しようとするまで、クラッシュすることはありません。実行中のアプリケーションが3.5の特定のdllを使用する前にバージョンをチェックできる場合は、winformダイアログを表示することができます。あなたの最も安全な賭けは、EXEを2.0のアセンブリにして、3.5に対してコンパイルされた別のdllに3.5のものすべてを作ることです。あなたはあなたの3.5アセンブリのいずれかをロードする前に、2.0 DLLであなたのチェックを行うことができます。

3

.NET 3.5では.NET 2.0ランタイムを使用しているため、アプリケーションは完全に正常に開始されます(ただし、3.5アセンブリのロード時にはになりません)。 Environment.Versionをチェックして、実行中の.NET 3.5であるかどうかを確認し、そうでなければ標準MessageBox.Showを表示することができます。

+1

Environment.Versionは、インストールされている.NETアセンブリではなく、CLRのバージョンのみを示します。バージョンを確認する公式の方法は、レジストリを使用することです:http://stackoverflow.com/questions/199080/how-to-detect-what-net-framework-versions-and-service-packs-are-installed –

3

ClickOnceの導入を検討しましたか?エージェントは、.Netを含む指定した必須項目を確認してインストールします。また、アプリケーションのアップグレードにかなりの労力をかけます。

+0

これに依存しません。特に、ユーザーがマシンに管理者アクセス権を持たない企業環境の場合 – ChrisF

+0

インストールに必要な権限が不足していると、インストール方法が失敗します。 –

+0

私の特別な状況では、アプリケーションはネットワークにアクセスできないシステムに配備されます。以前はClickOnceを使用していませんでしたが、ほとんどの状況で素晴らしいソリューションのように見えます。 –

関連する問題