Сценарий пакетной обработки, чтобы установить или удалить службу Windows.NET

Чтобы добавить мои 2 цента, исключение может возникнуть, даже если вы вызываете свой код через System.Windows.Threading.Dispatcher.CurrentDispatcher.Invoke(). Дело в том, что вам нужно вызвать Invoke() элемента Dispatcher элемента управления, к которому вы пытаетесь получить доступ, что в некоторых случаях может не совпадать с System.Windows.Threading.Dispatcher.CurrentDispatcher. Поэтому вместо этого вы должны использовать YourControl.Dispatcher.Invoke() для обеспечения безопасности. Я уже несколько часов стучал головой, прежде чем понял это.

17
задан John Rasch 24 February 2009 в 18:16
поделиться

6 ответов

Вы могли установить свой сервис exe для поддержки сам регистрация / нерегистрация с помощью параметров командной строки (-i-u и т.д.) вместо того, чтобы писать пакетный файл, чтобы сделать то же самое.

информация о создании Сам Installing Services В.NET

http://anotherlab.rajapet.net/2006/06/self-installing-services-in-net.html

http://www.gotnet.biz/WindowsServiceSelfInstaller.ashx

Также добавление Проекта Установки к Вашему решению и наличию сборки Visual Studio пакет установки мог бы быть быстрее.

, Как создать проект Установки для службы Windows в Visual Basic.NET или в Visual Basic 2005

(VB) http://support.microsoft.com/kb/317421

(C#) http://support.microsoft.com/kb/816169

14
ответ дан 30 November 2019 в 10:00
поделиться

Это - пакетные файлы, которые я раньше устанавливал.

@ECHO OFF

REM The following directory is for .NET 2.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727
set PATH=%PATH%;%DOTNETFX2%

echo Installing MyService...
echo ---------------------------------------------------
InstallUtil /i MyService.exe
echo ---------------------------------------------------
echo Done.
pause

Для Удаления я использовал следующее:

@ECHO OFF

REM The following directory is for .NET 2.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727
set PATH=%PATH%;%DOTNETFX2%

echo Uninstalling MyService...
echo ---------------------------------------------------
InstallUtil /u MyService.exe
echo ---------------------------------------------------
echo Done
32
ответ дан 30 November 2019 в 10:00
поделиться

я не уверен, почему Вам был бы нужен пакетный файл для одного лайнера. это - то, что я использовал бы.

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe/i ServiceAssembly.dll

2
ответ дан 30 November 2019 в 10:00
поделиться

Предложения:

  • Используют среду, Windows не может быть установлен на C:. Но можно использовать %WinDir %.
  • можно перенаправить эхо для добавления в файл:

    повторяют сообщение>> logfile.txt

  • Отслеживание всего и convering, все пограничные случаи могут быть сложными в cmd.exe, это не богатая среда.

  • нет никакого последовательного места для документации. Но справка (из командной строки) на "cmd", "если", "для", "набор" и "вызов" покрывает большую часть доступного синтаксиса.
  • Выделенное эхо в запуске для наблюдения команд, поскольку они выполняются.
0
ответ дан 30 November 2019 в 10:00
поделиться

создайте файл с .bat расширением и поместите это в файл

installutil-u c:\YourServiceLocation\Service.exe

0
ответ дан 30 November 2019 в 10:00
поделиться

Я сделал это со старомодным пакетным файлом....

Копия installutil.exe в тот же каталог как Ваш исполняемый файл (для создания вещей легче) следующее является универсальным примером содержания необходимого пакетного файла: (мой был просто именами instal.bat)

<час>
installutil MyService.exe 
sc config MyService type= interact type= own
sc failure MyService reset= 6000  actions= restart/5000/restart/5000/restart/5000
sc start MyService 
<час>

Для большего количества информации о параметрах командной строки для installutil.exe, посмотрите здесь .

Для удаления сервиса используйте другой пакетный файл со следующим содержанием:

<час>
installutil MyService.exe /u
<час>
0
ответ дан 30 November 2019 в 10:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: