Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
172 views
in Technique[技术] by (71.8m points)

c# - Install Windows Service created in Visual Studio

When I create a new Windows Service in Visual Studio 2010, I get the message stating to use InstallUtil and net start to run the service.

I have tried the following steps:

  1. Create new project File -> New -> Project -> Windows Service
  2. Project Name: TestService
  3. Build project as is (Service1 constructor, OnStart, OnStop)
  4. Open command prompt, run "C:WindowsMicrosoft.NETFrameworkv4.0.30319InstallUtil.exe" TestService.exe
  5. Run net start TestService.

Output of step 4

Running a transacted installation.

Beginning the Install phase of the installation.

See the contents of the log file for the C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTestServiceTestServiceobjx86DebugTestService.exe assembly's progress.

The file is located at C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTes tServiceTestServiceobjx86DebugTestService.InstallLog.

Installing assembly 'C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTestS erviceTestServiceobjx86DebugTestService.exe'.

Affected parameters are:

logtoconsole =

logfile = C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTestServiceT estServiceobjx86DebugTestService.InstallLog

assemblypath = C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTestServ iceTestServiceobjx86DebugTestService.exe

No public installers with the RunInstallerAttribute.Yes attribute could be found in the C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTestServiceTestSe rviceobjx86DebugTestService.exe assembly.

The Install phase completed successfully, and the Commit phase is beginning.

See the contents of the log file for the C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTestServiceTestServiceobjx86DebugTestService.exe assembly's progress.

The file is located at C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTes tServiceTestServiceobjx86DebugTestService.InstallLog.

Committing assembly 'C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTestS erviceTestServiceobjx86DebugTestService.exe'.

Affected parameters are:

logtoconsole =

logfile = C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTestServiceT estServiceobjx86DebugTestService.InstallLog

assemblypath = C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTestServ iceTestServiceobjx86DebugTestService.exe

No public installers with the RunInstallerAttribute.Yes attribute could be found in the C:UsersmyusernameDocumentsVisual Studio 2010ProjectsTestServiceTestSe rviceobjx86DebugTestService.exe assembly.

Remove InstallState file because there are no installers.

The Commit phase completed successfully.

The transacted install has completed.

Output of step 5

The service name is invalid.

More help is available by typing NET HELPMSG 2185.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need to open the Service.cs file in the designer, right click it and choose the menu-option "Add Installer".

It won't install right out of the box... you need to create the installer class first.

Some reference on service installer:

How to: Add Installers to Your Service Application

Quite old... but this is what I am talking about:

Windows Services in C#: Adding the Installer (part 3)

By doing this, a ProjectInstaller.cs will be automaticaly created. Then you can double click this, enter the designer, and configure the components:

  • serviceInstaller1 has the properties of the service itself: Description, DisplayName, ServiceName and StartType are the most important.

  • serviceProcessInstaller1 has this important property: Account that is the account in which the service will run.

For example:

this.serviceProcessInstaller1.Account = ServiceAccount.LocalSystem;

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...