简体   繁体   中英

How can I install a windows service onto a machine that doesn't have Visual Studio installed?

安装Windows服务的唯一方法我知道是使用“ Visual Studio 2008命令提示符 ”,有没有办法在没有安装Visual Studio的机器上安装windows-service(假设.Net版本2.X是安装。)

你可以使用位于.net框架文件夹中的installUtil (在我的机器上它是C:\\ Windows \\ Microsoft.NET \\ Framework \\ v2.0.50727)。

You can install Windows Services as an MSI. Create the MSI as a normal Project attached to your Service Project.

In your Service Project Create an Installer Class and add the components serviceInstaller and serviceProcessInstaller and configure as required. Add the Project Output from the Service Project to the MSI Project, Set the Custom Actions of the MSI Project for Install, Commit, Rollback and Uninstall to the Output of the Service Project.

Alter the MSI Project in any other way as desired, build the MSI, then you will be able to install your Service to any Windows machine without VS.NET or by using the InstallUtil utility application. The MSI will also handle the Uninstall etc.

There are properties of the serviceProcessInstaller component which you can set for the Account to run the Service under, the serviceInstaller contains properties which can be set such as the Service Name. You will have to set the ServiceName and its Parent, MSDN will provide good information on how to use both of these components.

Relevant MSDN page: http://msdn.microsoft.com/en-us/library/sd8zc8ha%28VS.80%29.aspx

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\installutil.exe yourproject.exe

You don't need to have Visual Studio installed for this to work.

Yep, installutil.exe works nicely, but I got tired of having to remember to start the Visual Studio 2008 Command Prompt in order to use it. Invariably, I'd open an ordinary console only to realize that the installutil.exe location was not part of the path.

Fortunately, the installutil.exe is a wrapper around a set of reflection calls. From MSDN,

Installutil.exe uses reflection to inspect the specified assembly and find all Installer types with the RunInstallerAttribute set to true. The tool then executes either the Install Method or the Uninstall Method on each instance of the Installer type.

What this means is that it is possible to add code to the Windows service to have it install and uninstall itself. By doing so, I no longer require installutil.exe or the Visual Studio 2008 Command Prompt to run it.

I have provided a step-by-step guide for how to do this here . The -install option installs the Windows service and starts it. Conversely, the -uninstall option stops the service and uninstalls it.

With visual studio command prompt:

installutil /i fullfilepathtoservice.exe

Without visual studio command prompt:

C:\WINNT\Microsoft.NET\Framework\v1.1.4322 installutil /i fullfilepathtoservice.exe

HTH.

Open a command prompt (cmd) and type

help sc

and

sc create

In additon the installutil.exe you're probably talking about is really just in the .Net Framework directory. The command prompt of VS just sets up a nice path, but you can launch it from (my path) C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727 just fine.

You don't need the Visual Studio 2008 Command Prompt. You need the InstallUtil.exe program which can be found in

C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727

On x64 machines there's also a 64-bit version in

C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727

These directories are obviously only available when .NET is installed.

All that's doing is putting the .Net framework tools onto the PATH; you can go still use: C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\InstallUtil.exe by specifying the full path on a normal command prompt (obviously adjust for your framework / CPU architecture)

I guess that you're looking for the "installutil.exe" program, which one uses to install .NET Windows Services. You can find it in %windir%\\Microsoft.NET\\Framework\\v2.0.50727

step 1> Install .net framework (I am using .net 4.0 but you can use as your requirement)

step 2> Go to run + cmd then click ok or directly go to your window command prompt (not visual studio command prompt )

step 3> type these lines

> cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
> E:\test\test\bin\Debug\test.exe

E:\\test\\test\\bin\\Debug\\ is the path where my window service setup is saved

C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\ is path where InstallUtil.exe exist.

In both InstallUtil.exe exist. and path must give a space. Otherwise, it raises an error.

Step 4> Enjoy..your service is installed...now you can check it from control panel > administrative tool >Services.

Run CMD as admin

Go to

C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319>

RUN the following:

InstallUtil C:\\Dev\\Codebase..\\Main\\Source....\\bin\\Debug\\.exe

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM