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

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

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

Re[5]: InstallShield ForceRebootアクション


(過去ログ 61 を表示中)

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

■34960 / inTopicNo.1)  InstallShield ForceRebootアクション
  
□投稿者/ シンイチ (1回)-(2009/04/15(Wed) 10:30:55)

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

インストール中に再起動をうながす画面を出力したいのですが、
ForceRebootアクションをシーケンスに追加するとインストール中に下記のエラーメッセージが出力されてしまいます。
ForceRebootアクションの前にやるべきアクションや設定などありましたら、教えていただけないでしょうか。
ちなみにScheduleRebootアクションでは、インストールの最後にダイアログが表示されるので、だめです。
どなたかわかる方いらっしゃればご教授ください
よろしくお願いいたします。

エラーメッセージ
スクリプトのレコードを書き込めません。トランザクションが開始されていません。

環境
InstallShield 2008
windows XP
引用返信 編集キー/
■34998 / inTopicNo.2)  Re[1]: InstallShield ForceRebootアクション
□投稿者/ とっちゃん (386回)-(2009/04/16(Thu) 12:28:39)
とっちゃん さんの Web サイト
No34960 (シンイチ さん) に返信
> インストール中に再起動をうながす画面を出力したいのですが、
> ForceRebootアクションをシーケンスに追加するとインストール中に下記のエラーメッセージが出力されてしまいます。
> ForceRebootアクションの前にやるべきアクションや設定などありましたら、教えていただけないでしょうか。
> ちなみにScheduleRebootアクションでは、インストールの最後にダイアログが表示されるので、だめです。
> どなたかわかる方いらっしゃればご教授ください
> よろしくお願いいたします。
>
ForceReboot Action をどこに挟んでいるのでしょう?何かをやるじゃなくてどこに配置しているか?
だと思うのですが...

昔のデフォルト設定には、ForceReboot入ってたんだけど<実行されないようにフラグ付きで
今はあるだけでロゴ通らないから、はずしちゃったのかな?

> エラーメッセージ
> スクリプトのレコードを書き込めません。トランザクションが開始されていません。
ということなので、APIのリファレンスを見てみたところ
The ForceReboot action must come between InstallInitialize and InstallFinalize in the action sequence of the InstallExecuteSequence table.
なんてことが書かれてましたよ。
トランザクションが開始されていないということなので、InstallInitialize 〜 InstallFinalize の間ではないところで
呼び出しているように思います。



ところで、そのリブートは必須なのですか?なぜリブートしなければいけないのでしょう?
必要な場合があるのはわかりますが、ForceReboot を使ってるとロゴが通りません(この間見てて見つけたw)。
WindowsInstaller的には、よほどのことがない限りリブートする必要性はないはずですが?

引用返信 編集キー/
■35046 / inTopicNo.3)  Re[2]: InstallShield ForceRebootアクション
□投稿者/ シンイチ (2回)-(2009/04/17(Fri) 17:41:54)
回答ありがとうございます。
InstallInitialize 〜 InstallFinalizeの間に入れたらできるようになりました。
リブートがなぜ必要かですが、
PC起動時にアプリが起動するようにレジストリに書き込んでいるパスを消して、
再起動をして、アプリが起動しないようにしてから
アンインストールを実行したかったので。。。

ありがとうございます。
助かりました。
引用返信 編集キー/
■35047 / inTopicNo.4)  Re[3]: InstallShield ForceRebootアクション
□投稿者/ シンイチ (3回)-(2009/04/17(Fri) 17:43:11)
解決済みにチェックを入れておきます。
解決済み
引用返信 編集キー/
■35057 / inTopicNo.5)  Re[4]: InstallShield ForceRebootアクション
□投稿者/ ちゃっぴ (228回)-(2009/04/17(Fri) 23:00:04)
ちゃっぴ さんの Web サイト
No35046 (シンイチ さん) に返信
> PC起動時にアプリが起動するようにレジストリに書き込んでいるパスを消して、
> 再起動をして、アプリが起動しないようにしてから

よくあるのだと、installer で影響がある applications 起動しているかどうか確認して、起動していたらそれを閉じてくださいと dialog を出してから install させるのが多いですね。

この理由で再起動が必要だとは言えないと思いますが。。。
解決済み
引用返信 編集キー/
■35063 / inTopicNo.6)  Re[5]: InstallShield ForceRebootアクション
□投稿者/ とっちゃん (387回)-(2009/04/18(Sat) 10:58:22)
とっちゃん さんの Web サイト
もしかしてユーザーにはそのアプリを終了させるがない?

もしそうなのであれば、プログラム的に終了させる仕組みを用意して、インストーラからカスタムアクション(ISのヘルプにあります)で終了させるようにしたほうがいいと思います。

コード書かないといけないのでそれなりに面倒ではありますが...
そういう選択肢もあるということで。

ちなみに、ちゃっぴの書いている部分(FileInUseダイアログが出る)は、ウィンドウが見えている状態(アイコン化状態を含む)じゃないと出てきません。
これは、Windows Installer の仕様です(非表示だと終了できるかわからないため)。

#解決済みなのでチェックはつけておきます。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -