我想使用Windows命令提示符(而不是Visual Studio命令提示符)安装Windows服务。

我该怎么做?

#1 楼

导航到.net文件夹中的installutil.exe(例如,对于.net 4,它为C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319),并使用它来安装服务,如下所示:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"


评论


如果它是x64编译服务,请使用“ C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe”。

– nme
16-2-23在10:10



我收到一个奇怪的错误。没有带有RunInstallerAttribute的公共安装程序。在.exe程序集中可以找到yes属性。删除InstallState文件,因为没有安装程序

–尼克
16-3-22在14:39

嗨,我尝试了这种解决方案,但是它给出的异常是“ ...未找到文件或其依赖项之一”。请帮忙。

– ShaileshDev
17年5月5日在13:59

对于与所有这些问题和我都有同样问题的每个人:您不再需要把整个路径都放在其中。一个简单的installutil.exe“ C:\ YourProject.exe”就足够了。

– Catatlysim
17年7月11日在12:01

@Cataklysim您必须使用完整路径,除非您将其添加到路径环境变量中。

–蓝光
18年8月8日在14:14

#2 楼

SC Create命令没问题。
您只需要知道正确的args:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"


评论


这是引用安装/修改/删除服务的官方方式的唯一答案。而且,这不依赖于安装的.NET Framework并可以与任何类型的文件一起工作,而不仅仅是.NET二进制文件。

–亚历杭德罗
17年11月1日在13:21

是的,这就是为什么我喜欢这种方法并总是建议它的原因,因为所有工作都需要在exe中完成,该exe可以属于任何.net fw版本。

–Sid
17年12月22日在8:32

注意,“ binpath =”之后的空格是必须的。 @ParamvirSinghKarwal

–Urk
19-10-7在15:30



如果使用powershell运行此命令,请注意SC是Set-Content的别名。编写SC.exe将解决此问题。

–贾斯珀·里默·安德森(Jesper Riemer Andersen)
20-2-10在13:38

这不仅是唯一正确的答案,而且有关仅适用于Windows Server的注释是完全错误的。我希望@CaptainDashenka将删除该评论,以免误导任何人。它至少在Windows 10 Professional下可用,但是您必须输入sc.exe,因为sc是服务控制管理器,这完全是另一回事。文档在这里:docs.microsoft.com/en-us/windows-server/administration/…

–DeeJayh
20年8月4日在12:06



#3 楼

如果目录名称的空格类似c:\program files\abc 123,则必须在路径周围使用双引号。

installutil.exe "c:\program files\abc 123\myservice.exe"




它使事情变得很重要如果您像下面那样设置bat文件,会更容易,

例如要安装服务,请创建“ myserviceinstaller.bat”和“以管理员身份运行”。

@echo off
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
installutil.exe "C:\Services\myservice.exe"

if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem
pause


要卸载服务,只需添加一个-u到installutil命令。

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"


评论


如果命令失败,InstallUtil将返回-1。在这种情况下,您宁可使用IF NOT'%ERRORLEVEL%'=='0'来检查错误级别。

–阿姆西谢尔
20 Jun 30'9:03



#4 楼

执行以下操作:


以管理员权限启动命令提示符(CMD)。
键入c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]

按回车键即可!
/>
以管理员权限打开很重要,否则您可能会发现出现的没有意义的错误。如果有,请先检查您是否已使用管理员权限打开它!

要以管理员权限打开,请右键单击“命令提示符”,然后选择“以管理员身份运行”。

源:
http://coderamblings.wordpress。 com / 2012/07/24 / how-to-install-a-windows-service-using-the-command-prompt /

#5 楼

安装服务:-

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" 
"C:\Services\myservice.exe"


卸载服务:-

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"


#6 楼

在Windows服务*.bat文件旁边创建一个exe文件,以使用以下上下文进行安装:

CLS
ECHO Installing My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"


在Windows服务*.bat文件旁边创建一个exe文件,以便使用以下命令进行卸载以下上下文:

CLS
ECHO Uninstalling My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"


以管理员身份运行每个bat文件,以安装或卸载Windows服务。

#7 楼

我必须在该线程中再加一点。要安装64-bit版本的程序集,请使用64-bit版本的工具。要安装服务,命令应该是:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"


,要卸载命令,应该是:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"


#8 楼


以管理员身份运行Windows命令提示符

粘贴此代码:cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\转到文件夹
编辑并运行此代码:installutil C:\ProjectFolder\bin\Debug\MyProject.exe


注意:要卸载:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe

#9 楼

打开Visual Studio并通过在Windows Service选项卡中选择Windows Desktop模板来选择新项目。然后将以下代码复制到您的service_name.cs文件中。

using System.Diagnostics;
using System.ServiceProcess;
namespace TimerService
{
    public partial class Timer_Service : ServiceBase
    {
        public Timer_Service()
        {
            InitializeComponent();
        }
        static void Main()
        {
            if (System.Diagnostics.Debugger.IsAttached)
            {
                Timer_Service service = new Timer_Service();
                service.OnStart(null);
            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new Timer_Service()
                };
                ServiceBase.Run(ServicesToRun);
            }
        }
        protected override void OnStart(string[] args)
        {
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." });
        }
        protected override void OnStop()
        {            
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." });
        }
    }
}


右键单击service_name.cs文件并打开服务设计器。右击并选择Add Installer。而不是右键单击serviceProcessInstaller1并将其Account的属性值从User更改为Local System

static void main文件中删除Program.cs方法。
比保存并生成您的项目。
bin\Ddebug文件夹。比打开您的service_name.exe文件的属性。比转到Compatibility选项卡。然后单击Change Settings For All Users

选择选项Run this program as an administrator

现在,您必须以管理员身份打开CommandPromt。
打开后,将目录设置为您的InstallUtil.exe文件所在的目录放置。
例如:C:\Windows\Microsoft.NET\Framework64\v4.0.30319
现在编写以下命令:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe


注意:-i用于安装服务,而-u进行卸载。

-i设置后,在您要安装服务的位置写入写路径。

现在在CommandPromt中编写命令,如下所示:

C:\TimerService\TimerService\bin\Debug>net start service_name


注意:使用stop停止服务。

现在打开ViewEventLog.exe。选择Windows日志>应用程序。您可以在此处通过启动和停止服务来检查服务日志。

#10 楼

如果您使用的是Powershell,并且要安装.NET服务,则可以使用Install-Service模块。它是InstalUtil工具的包装。

它公开了3个命令


Install-Service-调用InstallUtil.exe pathToExecutable命令
Install-ServiceIfNotInstalled-首先它检查服务是否为
如果不执行Install-Service
Uninstall-Service-的方法安装,则会卸载服务。可以使用可执行文件路径的ServiceName。

可以在此处查看此模块的代码

#11 楼


使用管理员权限启动命令提示符(CMD)。
键入c:\ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [您的exe的Windows服务路径]
按回车


#12 楼

下面的代码,安装和卸载服务,

打开命令提示符并以管理员身份运行该程序,然后启动以下命令,然后按Enter。

语法

要安装

C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe


例如:我们的路径
InstallUtil.exe C:\ MyFirstService \ bin \ Debug \ MyFirstService.exe

要卸载

 C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe


例如:我们的路径InstallUtil.exe -u C:\ MyFirstService \ bin \ Debug \ MyFirstService.exe

有关更多帮助,请参见以下链接:示例程序

#13 楼

以管理员身份打开Developer命令提示符,然后导航到

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319


现在使用路径.exe在哪里

InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"


#14 楼

部署Windows服务时,请按照以下步骤操作,不要浪费时间:


通过管理员权限运行命令提示符


确保发布模式在IDE中进行编译时


在设计视图中为项目安装程序提供一种类型


根据情况选择身份验证类型


确保软件依赖性:如果您使用的是证书,请正确安装


在控制台上输入以下内容:
C:\ Windows \ Microsoft .NET \ Framework \ yourRecentVersion \ installutil.exe c:\ yourservice.exe


在exe路径-i c:\之前有一个隐藏的-i参数,您可以使用-u进行卸载

查找您的.exe路径以显示日志文件。您可以使用事件查看器来观察功能



#15 楼

当您的程序集版本和Visual Studio项目在点网2或4上的Biuld设置使用相同的版本进行安装时。

installutil的安装服务与该版本相同

如果在点网中进行构建4

类型c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe

如果内置于点网2中

类型c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe

#16 楼

1.从“开始”菜单中,选择“ Visual Studio”目录,然后选择“ VS的开发人员命令提示符”。

2.出现“ Visual Studio的开发人员命令提示符”。

3。访问项目的已编译可执行文件所在的目录。

4.在命令提示符下运行InstallUtil.exe,将项目的可执行文件作为参数

#17 楼

您应该打开命令提示符,转到

C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"

#18 楼

以管理员身份打开命令提示符,转到您的.exe所在的文件夹。
要安装Exe作为服务
D:\YourFolderName\YourExeName /i


要卸载请使用/u