C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[10]: .Net FW 3.5.1のインスト確認


(過去ログ 121 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■72636 / inTopicNo.1)  .Net FW 3.5.1のインスト確認
  
□投稿者/ 焦げ太 (10回)-(2014/07/01(Tue) 10:54:04)

分類:[インストーラ全般] 

VC++(VS2008)とWixを使用してインストーラーを作成しており、VC++で作成
したsetup.exeからWixで作成したmsiを呼び出しています。

setup.exeでは起動条件をチェックし、必要に応じて.Net Framework 3.5.1
のインストールを行うようにしています。

しかし、Windows7以降のOSでは規定で.Net Framework 3.5.1が含まれており
無効の状態であってもインストールは失敗します。この時に.Net Framework 3.5.1
が表示するメッセージがわかりづらいと思っています。

そこで、事前に規定で含まれているかチェックし、メッセージのみ表示して
インストーラーを終了するか、.Net Framework 3.5.1をインストールするか
を振り分けたいと考えました。

そこで質問ですが、規定で.Net Framework 3.5.1が含まれているかのチェック
はOSのバージョンチェックで大丈夫なものなのでしょうか?
(Windows7以降、Serverは2008以降?)

それとも、規定で.Net Framework 3.5.1が含まれているか(無効の状態でも)
チェックは可能なものでしょうか?方法がわかりませんでした。

よろしくお願いいたします。

引用返信 編集キー/
■72637 / inTopicNo.2)  Re[1]: .Net FW 3.5.1のインスト確認
□投稿者/ ぽぴ王子 (2回)-(2014/07/01(Tue) 11:23:13)
ぽぴ王子 さんの Web サイト
No72636 (焦げ太 さん) に返信
> VC++(VS2008)とWixを使用してインストーラーを作成しており、VC++で作成
> したsetup.exeからWixで作成したmsiを呼び出しています。

(中略)

> そこで質問ですが、規定で.Net Framework 3.5.1が含まれているかのチェック
> はOSのバージョンチェックで大丈夫なものなのでしょうか?
> (Windows7以降、Serverは2008以降?)
>
> それとも、規定で.Net Framework 3.5.1が含まれているか(無効の状態でも)
> チェックは可能なものでしょうか?方法がわかりませんでした。
>
> よろしくお願いいたします。

このあたりのレジストリを見ればインストールされているかどうかがわかりそうです。
http://www.atmarkit.co.jp/ait/articles/1210/26/news086.html

OSのバージョンを調べても、それ以前のバージョンのOSでもインストールされている
可能性はありますし、あまり意味がないような気がします。
引用返信 編集キー/
■72638 / inTopicNo.3)  Re[1]: .Net FW 3.5.1のインスト確認
□投稿者/ とっちゃん (238回)-(2014/07/01(Tue) 11:53:24)
とっちゃん さんの Web サイト
No72636 (焦げ太 さん) に返信
> そこで質問ですが、規定で.Net Framework 3.5.1が含まれているかのチェック
> はOSのバージョンチェックで大丈夫なものなのでしょうか?
> (Windows7以降、Serverは2008以降?)
>
> それとも、規定で.Net Framework 3.5.1が含まれているか(無効の状態でも)
> チェックは可能なものでしょうか?方法がわかりませんでした。
>
必須コンポーネントのチェックを見ると、

<InstallChecks>
<RegistryCheck Property="DotNet35SP" Key="HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\1041" Value="SP"/>
</InstallChecks>
で、レジストリを取り込んでおき
<!-- These checks determine whether the package is to be installed -->
<InstallConditions>
<!-- This indicates the .Net Framework is already installed -->
<BypassIf Property="DotNet35SP" Compare="ValueGreaterThanOrEqualTo" Value="1"/>

<!-- Block install if user does not have admin privileges -->
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>

<!-- Block install on less than Windows XP SP2 -->
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.1.2" String="InvalidPlatformWinNT"/>

<!-- Block install on W2K3 with no service pack -->
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="5.2.0" String="InvalidPlatformWinNT"/>

<!-- Block install if the platform is IA-64 -->
<FailIf Property="ProcessorArchitecture" Compare="ValueEqualTo" Value="IA64" String="InvalidPlatformArchitecture"/>
</InstallConditions>
という形で、インストールするかどうかをチェックしています(VS2010添付のものより)。

インストーラとして実行するファイルは、
<Command PackageFile="dotNetFx35setup.exe" Arguments=" /lang:jpn /passive /norestart" EstimatedInstalledBytes="30000000" EstimatedTempBytes="30000000">
ですね(後続の、EstimatedXxx は、必要サイズなので、起動時にチェックすると失敗の可能性が減ります)。


独自のインストーラがどういう段取りでチェックしているかわかりませんが、参考になるでしょうか?

引用返信 編集キー/
■72639 / inTopicNo.4)  Re[2]: .Net FW 3.5.1のインスト確認
□投稿者/ 焦げ太 (11回)-(2014/07/01(Tue) 12:07:27)
No72637 (ぽぴ王子 さん) に返信

ご返信ありがとうございます。
また、説明ベタで申し訳ありません。

インストール済み(有効)かどうかは下記レジストリの"Install"および
"SP"の値にてチェックを既に行っております。

"Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5"
"Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5\\1041"

Windosw7以降(?)のOSはデフォルトで.Net FM 3.5.1がインストールされており、
有効/無効の切替が可能となっているようです。

上記レジストリのチェックでは下記の(1)、(2)の判断のみ可能と認識して
おります。(間違っているかもしれませんが…)
(1)インストールされている状態
(2)インストールされていない状態(無効の場合を含む)
(3)インストールされているが無効な状態

(3)の状態の判断を行いたいのですが、下記のチェックで満たされているかが
不安です。(将来のOSのバージョンは考慮しません)

・上記レジストリのチェックでインストールされていない
・OSのバージョンがWindows7、8、8.1、Server2008、2012であること

ご意見をいただけると助かります。
よろしくお願いいたします。
引用返信 編集キー/
■72640 / inTopicNo.5)  Re[2]: .Net FW 3.5.1のインスト確認
□投稿者/ 焦げ太 (12回)-(2014/07/01(Tue) 12:11:54)
No72638 (とっちゃん さん) に返信

ご返信ありがとうございます。
私のスキル=低のため、即判断ができず… orz
じっくり見て考えてみます。

引用返信 編集キー/
■72641 / inTopicNo.6)  Re[3]: .Net FW 3.5.1のインスト確認
□投稿者/ とっちゃん (239回)-(2014/07/01(Tue) 13:08:30)
とっちゃん さんの Web サイト
No72640 (焦げ太 さん) に返信
> ■No72638 (とっちゃん さん) に返信
>
> ご返信ありがとうございます。
> 私のスキル=低のため、即判断ができず… orz
> じっくり見て考えてみます。
>
あ、XML文法のリンク張っておきます。
http://msdn.microsoft.com/ja-jp/library/ms229223.aspx

実際のコードでチェックしている内容と大差ないようですが、一応。。。

引用返信 編集キー/
■72651 / inTopicNo.7)  Re[4]: .Net FW 3.5.1のインスト確認
□投稿者/ 焦げ太 (13回)-(2014/07/01(Tue) 15:37:54)
No72641 (とっちゃん さん) に返信

お教えいただいた内容ですが期待する内容とは(たぶん)違うようでした。
そして、私の無知と思いこみにより そもそもの質問を間違えた気がします。

改めて、元々やりたいことを質問させていただきます。
下記OSに"あるソフト"の必須コンポーネントとして.Net Framework 3.5 SP1を
インストールしたいです。

Windows XP SP3 〜 Windows 8.1
Windows Server 2003 〜 Windows Server 2012

現在は、下記レジストリの"Install"、"SP"の値にてインストールされているか
チェックを行い、インストールされていなければ「dotNetFx35setup.exe」を
実行しております。(その後「dotnetfx35langpack_x86ja.exe」または
「dotnetfx35langpack_x64ja.exe」を実行しております。)

"Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5"
"Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5\\1041"

しかし、Windows7以降では「dotNetFx35setup.exe」がエラーとなります。
原因は「Windows機能の有効化/無効化」から.Net Framework 3.5.1を
有効にしなければいけないためです。(Windows7はデフォルト有効ですが…)

「Windows機能の有効化/無効化」で「.Net Framework 3.5.1」が無効の
場合にプログラム(C++)から有効にする手段はあるのでしょうか?

よろしくお願いいたします。
引用返信 編集キー/
■72655 / inTopicNo.8)  Re[5]: .Net FW 3.5.1のインスト確認
□投稿者/ 焦げ太 (14回)-(2014/07/01(Tue) 18:52:33)
No72651 (焦げ太 さん) に返信

自己報告になりますが、Windows8、Server2012であれば、
「fondue.exe」というものがあり、有効化できることが
わかりました。

Windows7、Server2008ではないようです。。。
どうしたものか。。。

引き続き、よろしくお願いいたします。
引用返信 編集キー/
■72662 / inTopicNo.9)  Re[6]: .Net FW 3.5.1のインスト確認
□投稿者/ 774RR (165回)-(2014/07/02(Wed) 09:26:33)
Windows7 では初期状態 Framework 3.5.1 有効のはずなので、もし仮に無効になっているとしたら
「ユーザーまたは管理者が、理由があって無効にしている」と判断すべきだろう。
要するに 3.5.1 を使わない、使わせない選択をしているわけだ。

だから、そういう状況では 3.5.1 が必要なプログラムはインストールできなくていいんぢゃないかな。
無理やり有効化するのはユーザー(というかシステム管理者)の意思決定に反するわけで。

http://blogs.technet.com/b/junichia/archive/2013/04/25/3569020.aspx
こんなページも見つけた。
dism /online /enable-feature /featurename:NetFx3 とか。
ウチの Windows7 (3.5.1 が有効な状態) で実行したら、特に何もせず「正常に完了しました」になった。

引用返信 編集キー/
■72664 / inTopicNo.10)  Re[7]: .Net FW 3.5.1のインスト確認
□投稿者/ 焦げ太 (15回)-(2014/07/02(Wed) 10:22:00)
No72662 (774RR さん) に返信

情報ありがとうございます。
確認してみます。
引用返信 編集キー/
■72665 / inTopicNo.11)  Re[8]: .Net FW 3.5.1のインスト確認
□投稿者/ とっちゃん (240回)-(2014/07/02(Wed) 11:48:25)
とっちゃん さんの Web サイト
No72664 (焦げ太 さん) に返信

面倒なので、一番後ろにぶら下げ。。。

Windows 7以降では。。。と書いていますが、Win8 で動作させてみたことはありますか?
Win8 で dotNetFx35setup.exe を動かすと、OSの機能の有効化をするか?って問い合わせがはいりますよ。<UIありで実行した場合
UIなしモード(Passive設定)ではどうなるかは試していないのでわかりませんがおそらく自動的にインストール処理が行われると思います。


ということで。。。
件のメッセージは、おそらく
---------------------------
Microsoft .NET Framework 3.5 SP1 セットアップ
---------------------------
インストールするにはコントロール パネルにある Windows の機能のオンまたはオフを使用するか、または Microsoft .NET Framework 3.5 SP1 を構成します。
---------------------------
OK
---------------------------
だと思います。

もし、このメッセージが気に入らない(できることなら書き換えたい)ということであれば
このメッセージが表示される Windows 7 のみ、インストールされていない場合は
自分であらかじめ用意しておいたメッセージを出すようにしておき、

それ以外のOSについては、従来通りのインストールチェックを行い、インストールされていなければ
インストール処理を行う、それ以外はそのままスキップで問題ないと思いますよ。

あとは文言をいい感じに誘導できるような形で用意してやればいいのではないでしょうか?

引用返信 編集キー/
■72671 / inTopicNo.12)  Re[9]: .Net FW 3.5.1のインスト確認
□投稿者/ 焦げ太 (16回)-(2014/07/02(Wed) 12:38:35)
No72665 (とっちゃん さん) に返信

ご返信ありがとうございます。

> Windows 7以降では。。。と書いていますが、Win8 で動作させてみたことはありますか?

そういわれるとWindows 7では確実に試しておりますが
Windows8は思い込みかもしれません。。。
確認してみます。

> ということで。。。
> 件のメッセージは、おそらく
> ---------------------------
> Microsoft .NET Framework 3.5 SP1 セットアップ
> ---------------------------
> インストールするにはコントロール パネルにある Windows の機能のオンまたはオフを使用するか、または Microsoft .NET Framework 3.5 SP1 を構成します。
> ---------------------------
> OK
> ---------------------------
> だと思います。

はい。その通りです。

> もし、このメッセージが気に入らない(できることなら書き換えたい)ということであれば
> このメッセージが表示される Windows 7 のみ、インストールされていない場合は
> 自分であらかじめ用意しておいたメッセージを出すようにしておき、
>
> それ以外のOSについては、従来通りのインストールチェックを行い、インストールされていなければ
> インストール処理を行う、それ以外はそのままスキップで問題ないと思いますよ。
>
> あとは文言をいい感じに誘導できるような形で用意してやればいいのではないでしょうか?

ありがとうございます。
Windows7、Windows2008R2 は自前のメッセージを出し、
他OSの場合は従来通りということで検討してみます。

この方法で落ち着くとは思いますが、774RRさんにご提示いただいた「dism」に関して
もう少し調査したいので、もうしばらく解決にしないままにしておきます。

引用返信 編集キー/
■72674 / inTopicNo.13)  Re[10]: .Net FW 3.5.1のインスト確認
□投稿者/ 焦げ太 (17回)-(2014/07/02(Wed) 14:28:50)
Windows8ではとっちゃんさんがおっしゃるとおり問い合わせがはいることを
確認いたしました。


774RRさんにご提示いただいた「dism」に関してですが、Windows7上で
.Net Framework 3.5.1 が無効の場合にインストールが実行され
有効となることを確認いたしました。

今回は「Windows7、Windows2008R2 は自前のメッセージを出し、
他OSの場合は従来通り」という方向で行うこととなりました。

貴重なお時間をさいてご回答いただいた皆様、ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -