ChatGPT解决这个技术问题 Extra ChatGPT

使用 Windows 命令提示符安装 Windows 服务?

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

我该怎么做呢?


F
FLICKER

导航到 .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"

关于评论,对于 64 位应用程序,请使用以下内容:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe

如果是 x64 编译服务,请使用“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe”。
我收到一个奇怪的错误。没有具有 RunInstallerAttribute 的公共安装程序。 Yes 属性可以在 .exe 程序集中找到。删除 InstallState 文件,因为没有安装程序
嗨,我尝试了这个解决方案,但它给出的异常是“...找不到文件或其依赖项之一”。请帮忙。
“Framework”和“Framework64”中的 installutil 有什么区别吗?
@Cataklysim您必须使用完整路径,除非您将其添加到路径环境变量中。
T
Thomas Ayoub

SC Create 命令没有错。只是你需要知道正确的 args :

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

这是引用安装/修改/删除服务的官方方法的唯一答案。此外,这不依赖于正在安装的 .NET Framework 并且可以与任何类型的文件一起使用,而不仅仅是 .NET 二进制文件。
是的..这就是为什么我喜欢这种方法并总是建议它,因为所有工作都需要在可以属于任何 .net fw 版本的 exe 中完成。
请注意,“binpath=”后面的空格是必须的。 @ParamvirSinghKarwal
如果使用 powershell 运行此命令,请注意 SC 是 Set-Content 的别名。编写 SC.exe 将解决此问题。
这不仅是唯一正确的答案,而且关于它仅适用于 Windows Server 的评论是完全不正确的。我希望@CaptainDashenka 将删除该评论,以免误导任何人。它至少在 Windows 10 专业版下可用,但您必须输入 sc.exe,因为 sc 是服务控制管理器,这完全是另一回事。文档在这里:docs.microsoft.com/en-us/windows-server/administration/…
a
asdf_enel_hak

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

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

https://i.stack.imgur.com/Xr3of.jpg

如果您设置如下所示的 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

卸载服务,

只需在 installutil 命令中添加 -u 即可。

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' 检查错误级别。
s
shA.t

执行以下操作:

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

以管理员权限打开很重要,否则您可能会发现出现的错误没有意义。如果您有任何问题,请先检查您是否已使用管理员权限打开它!

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

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


C
CMedina

安装服务:-

"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"

M
Mohammad Dayyan

在您的 Windows 服务 exe 文件用于安装旁边创建一个 *.bat 文件,其中包含以下上下文:

CLS
ECHO Installing My Windows Service 

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

在您的 Windows 服务 exe 文件用于卸载旁边创建一个 *.bat 文件,其中包含以下上下文:

CLS
ECHO Uninstalling My Windows Service 

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

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


M
MKR

我必须在这个线程中再添加一点。要安装/卸载 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"

O
Oguzhan Kircali

以管理员身份运行 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


K
Karan Raiyani

打开 Visual Studio 并通过在 Windows Desktop 选项卡中选择 Windows Service 模板来选择新项目。将以下代码复制到您的 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 并将其属性值 AccountUser 更改为 Local System

Program.cs 文件中删除 static void main 方法。比保存并构建您的项目。

注意:转到项目文件夹的 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 日志 > 应用程序。在那里,您可以通过启动和停止服务来检查您的服务日志。


J
Joji Thomas Eapen

以下代码,安装和卸载服务,

打开命令提示符并以管理员身份运行程序并触发以下命令并按 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

如需更多帮助,您可以查看以下链接:sample program


P
Pawel Wujczyk

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

它公开了 3 个命令

Install-Service - 调用 InstallUtil.exe pathToExecutable 命令

Install-ServiceIfNotInstalled - 首先检查是否安装了服务,如果不执行方法 Install-Service

卸载服务 - 它卸载服务。可以使用可执行文件路径的 ServiceName。

可以查看此模块的代码here


R
R15

以管理员身份打开开发人员命令提示符并导航到

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

现在使用您的 .exe 所在的路径

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

w
what server

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


A
AMIR2580

1.从开始菜单中,选择 Visual Studio 目录,然后选择 Developer Command Prompt for VS 。

2. 出现Visual Studio 的开发者命令提示符。

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

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


J
Joji Thomas Eapen

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

使用相同版本的 installutil 安装服务

如果在 dot net 4 中构建

输入 c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe

如果在 dot net 2 中构建

输入 c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe


p
peterh

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

通过管理员权限运行命令提示符 在 IDE 中编译时确保发布模式 在设计视图上为项目安装程序指定类型 根据案例选择身份验证类型 确保软件依赖性:如果您使用的是证书,请正确安装 转到控制台写这个:C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe

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

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


M
Mhmd Hasnen Mhmd Yousef

您可以使用命令提示符并编写:C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"


s
salman karim

您可以使用 InstallUtil 安装任何 Windows 服务。 1:C:\Windows\Microsoft.NET\Framework64\v4.0.30319 在以管理员身份运行的命令提示符下。 2:复制Exe路径并输入InstallUtil.exe“你的exe路径”并回车。

如果你想要视觉上的阐述。转到下面的链接。这对我帮助很大。

https://youtu.be/yrdyYxzI7SE


S
Samuel Liew

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

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


N
Naveen

以管理员身份打开命令提示符,转到 .exe 所在的文件夹。将 Exe 安装为服务

D:\YourFolderName\YourExeName /i

要卸载使用 /u