2

再起動アクションを vdproj に追加するにはどうすればよいですか?

インストールの最後に PC を再起動するMSIファイルが必要です。

4

3 に答える 3

3

これがsaschabeaumont答えに基づく私の解決策です。

インストーラーをビルドするたびに再起動を要求するように .msi を自動的に変更するには:

  1. 以下に示す VB スクリプトを使用して、.vdproj 展開プロジェクト ファイルが配置されているフォルダーに「AddRebootPrompt.vbs」という名前のファイルを作成します。

  2. Visual Studio ソリューション エクスプローラーで配置プロジェクトを見つけ、右クリックして [プロパティ] に移動します。

  3. PostBuildEvent プロパティに次を貼り付けて、インストーラー プロジェクトのビルド後にスクリプトを実行します。

cscript "$(ProjectDir)AddRebootPrompt.vbs" "$(BuiltOuputPath)"

AddRebootPrompt.vbs コンテンツ:

Dim installer, database, view, result
Dim strPathMsi 

If WScript.Arguments.Count <> 1 Then
    WScript.Echo "Usage: cscript AddRebootPrompt.vbs <path to MSI>"
    WScript.Quit -1
End If

strPathMsi = WScript.Arguments(0)

Set installer = CreateObject("WindowsInstaller.Installer")
Set database = installer.OpenDatabase (strPathMsi, 1)
Set view = database.OpenView ("INSERT INTO Property (Property, Value) VALUES ('REBOOT', 'Force')")

WScript.Echo "Adding forced reboot prompt to install sequence."

view.Execute
database.Commit
WScript.Quit 0

成功すると、「強制再起動プロンプトをインストール シーケンスに追加しています」と表示されます。インストーラー プロジェクトのビルド時にビルド出力ログ ウィンドウに表示されます。

于 2011-07-12T12:24:21.543 に答える
3

「REBOOT」プロパティに値「Force」を追加するだけで、セットアップが完了したら再起動するようにユーザーに促すか、ユーザー インターフェイスがない場合は自動的に再起動します。

vdjproj でこれを行うことができない場合は、セットアップがビルドされたら、Orca を使用して MSI のプロパティ テーブルを編集します。

強制的に再起動したい場合は、REBOOT=Force および REBOOTPROMPT=Suppress を設定して、ユーザーにプロンプ​​トが表示されないようにすることができます。

または、アクションを使用してForceReboot、インストールの途中で再起動したりScheduleReboot、インストールの完了後に再起動をスケジュールしたりできます。vdjproj で追加できない場合は、これらのアクションのいずれかを Orca を使用して追加できます。

次のVBSを使用して、このようなことを行うことができます

Dim installer, database, view, result
Set installer = CreateObject("WindowsInstaller.Installer")
Set database = installer.OpenDatabase ("setup.msi", 1)
Set view = database.OpenView ("INSERT INTO Property (Property, Value) VALUES ('REBOOT', 'Force')")
view.Execute
database.Commit
Set database = nothing
于 2008-12-05T04:34:49.670 に答える
0

再起動が必要な場合は、Windows インストーラーが自動的に検出します。サービスを手動で開始するのが面倒で再起動したい場合は、別の方法を見つける必要があります (簡単な方法は知りません)。

于 2008-12-04T10:40:14.597 に答える