Как я могу предложить пользователю перезагрузиться при установке .NET? - PullRequest
0 голосов
/ 18 января 2009

Я использую Visual Studio 2008 для написания установки, и я совершенно новичок в установке. Я создал установку и успешно написал некоторые пользовательские действия, используя сборку C #. Одно действие устанавливает значение реестра RunOnce, и теперь мне нужно предложить пользователю перезагрузиться после завершения установки, но я понятия не имею, как. Я прочитал документацию по классу Установщика, но не могу найти упоминаний о перезагрузке.

Я предполагаю, что мне нужно каким-то образом перейти к возможности вызова MsiSetProperty и установить свойство REBOOT, но я не знаю, как это сделать из моего .NET проекта установщика. *

Ответы [ 3 ]

5 голосов
/ 19 января 2009

Спасибо. В итоге я использовал событие post-build для запуска командного файла с помощью следующей команды. Сложнее всего было отследить WiRunSQL.vbs, который находился в «Компоненты Windows SDK для разработчиков установщика Windows» .

cscript "C:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\SysMgmt\MSI\scripts\WiRunSQl.vbs" my.msi "INSERT INTO `Property`(`Property`, `Value`) VALUES ('REBOOT', 'F')"
0 голосов
/ 18 января 2009

Просто установите свойство в MSI изначально, а не пытайтесь обновить его во время выполнения.

Visual Studio 2008 в любом случае поставляется с WiX, подробнее см. Visual Studio поставляет набор инструментов WiX Тем не менее, я не пользователь Visual Studio 2008, поэтому я не знаю, является ли это дополнением или заменой предыдущих проектов установки Visual Studio.

0 голосов
/ 18 января 2009

Если вы реализуете свой установщик, используя WiX , вам нужно добавить это:

<ScheduleReboot After="InstallFinalize"/>

Если вы используете сокращенный проект «Установщик» в Visual Studio , я не уверен ... Но эта ссылка здесь предлагает CScript команда, которая, кажется, показывает, как внедрить свойство MSI в проект установщика, так же, как вы хотите.

...