我该怎么做?
#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"
#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
。
评论
如果它是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