Передайте параметры в InstallUtil из Powershell
Я пытаюсь установить Windows-сервис из Power-shell следующим образом.
$sn = """" + $serviceName + " " + $exeName + """"
C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe -i /ServiceName=[$sn] $exeFilePath
Я получаю следующее исключение.
Microsoft (R) .NET Framework Installation utility Version 2.0.50727.3053
Copyright (c) Microsoft Corporation. All rights reserved.
Exception occurred while initializing the installation:
System.IO.FileNotFoundException: Could not load file or assembly 'file:///E:\Scheduled' or one of its dependencies. The system cannot f
ind the file specified..
Но следующая команда работает.
C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe -i /ServiceName=["Scheduled Download Service"] $exeFilePath
Я пытаюсь установить службу Windows с динамическим именем и с помощью Power-shell я передаю имя службы. Любая помощь приветствуется.
Ответ верен для VS 2008. Но в VS 2012 произойдет сбой. Потому что InstallUtil изменен.
Вы должны использовать $sn = """" + $serviceName + " " + $exeName + """"
Причина в том, что InstallUtil(2.0) автоматически добавляет кавычки, и поэтому мы должны их игнорировать (как в ответе). Но InstallUtil(4) пропускается, если строка содержит кавычки в любом месте (что является ошибкой? - они должны были проверить, есть ли кавычки в начале и конце строки - в настоящее время это нарушает весь код 2.0).
Reflecter твой друг.
1 ответ
Ваша проблема в этой строке:
$sn = """" + $serviceName + " " + $exeName + """"
Если вы замените это на что-то более простое, или сделайте это так:
$sn = $serviceName.ToString() + " " + $exeName
Это будет работать