I use VS 2012 and since the setup projects have been removed from it I have to use InstallUtil.exe.
I don't have projectInstaller class in my windows service app. I run in command prompt:
installutil FilesMonitoringService.exe
I get:
C:\\Program Files\\Microsoft Visual Studio 8\\VC#>installutil "C:\\Program Files\\Mic rosoft Visual Studio 8\\VC#\\CSharpProjects\\MyService\\MyService\\bin\\Release\\MyServ ice.exe" Microsoft (R) .NET Framework Installation utility Version 2.0.50727.42 Copyright (c) Microsoft Corporation. All rights reserved.
Running a transacted installation.
Beginning the Install phase of the installation. See the contents of the log file for the C:\\Program Files\\Microsoft Visual Studi o 8\\VC#\\CSharpProjects\\MyService\\MyService\\bin\\Release\\MyService.exe assembly's progress. The file is located at C:\\Program Files\\Microsoft Visual Studio 8\\VC#\\CSharpProj ects\\MyService\\MyService\\bin\\Release\\MyService.InstallLog. Installing assembly 'C:\\Program Files\\Microsoft Visual Studio 8\\VC#\\CSharpProjec ts\\MyService\\MyService\\bin\\Release\\MyService.exe'. Affected parameters are: logtoconsole = assemblypath = C:\\Program Files\\Microsoft Visual Studio 8\\VC#\\CSharpProjects\\ MyService\\MyService\\bin\\Release\\MyService.exe logfile = C:\\Program Files\\Microsoft Visual Studio 8\\VC#\\CSharpProjects\\MySer vice\\MyService\\bin\\Release\\MyService.InstallLog No public installers with the RunInstallerAttribute.Yes attribute could be found in the C:\\Program Files\\Microsoft Visual Studio 8\\VC#\\CSharpProjects\\MyService\\ MyService\\bin\\Release\\MyService.exe assembly.
The Install phase completed successfully, and the Commit phase is beginning. See the contents of the log file for the C:\\Program Files\\Microsoft Visual Studi o 8\\VC#\\CSharpProjects\\MyService\\MyService\\bin\\Release\\MyService.exe assembly's progress. The file is located at C:\\Program Files\\Microsoft Visual Studio 8\\VC#\\CSharpProj ects\\MyService\\MyService\\bin\\Release\\MyService.InstallLog. Committing assembly 'C:\\Program Files\\Microsoft Visual Studio 8\\VC#\\CSharpProjec ts\\MyService\\MyService\\bin\\Release\\MyService.exe'. Affected parameters are: logtoconsole = assemblypath = C:\\Program Files\\Microsoft Visual Studio 8\\VC#\\CSharpProjects\\ MyService\\MyService\\bin\\Release\\MyService.exe logfile = C:\\Program Files\\Microsoft Visual Studio 8\\VC#\\CSharpProjects\\MySer vice\\MyService\\bin\\Release\\MyService.InstallLog No public installers with the RunInstallerAttribute.Yes attribute could be found in the C:\\Program Files\\Microsoft Visual Studio 8\\VC#\\CSharpProjects\\MyService\\ MyService\\bin\\Release\\MyService.exe assembly. Remove InstallState file because there are no installers.
The Commit phase completed successfully.
The transacted install has completed.
C:\\Program Files\\Microsoft Visual Studio 8\\VC#>
OK , seems like everything have been installed. But! When I go to task manager to the Services page I can't find my service.
What could be the reason?
Thanks in advance!
Edits: I pointed out that I don't have projectInstaller class because if I add it (in designer -> add installer) and run installutil command I get: (approximate translation)
Installation of FilesMonitoringService... Creation of EventLog FilesMonitoringService in a log jornal Application...
On this setup stage the exception occured.
System.Security.SecurityException: The source is not found, but failed to find by any or all log jornals. Not available jornals: Security.
The recoil stage starts.
// lots of text
The recoil stage has succeded
Setup group operation executed. Setup failed and recoil was executed.
So, if I add projectInstller to my windows service it definitely fails to install with installUtil.
Here is the generated code:
[RunInstaller(true)]
public partial class ProjectInstaller : Installer
{
public ProjectInstaller()
{
InitializeComponent();
}
private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
{}
private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e)
{}
}
Mabby I need to put some code into afterInstall methods? I also set this properies in a properties
window:
serviceInstaller1: ServiceName -> FileMonitoringService, StartType -> Automatic
serviceProcessInstaller1: Account -> LocalSystem
Or can it be implemented without projectInstaller?
Ok, there are couple of things:
1) You need projectInstaller.
2) YourProject -> properties; Startup project -> YourProject.Program
3) build
4) “Run as Administrator” the command prompt!
Everything works now.
I don't have a copy of VS2012 to test it now, but I believe that your problem has something to do with the
I don't have projectInstaller class in my windows service app
part.
From msdn :
Installation components register an individual service on the system to which it is being installed and let the Services Control Manager know that the service exists
这似乎微不足道,但在编写installutill参数时要仔细检查,因为您可能会将服务的exe文件与编译引用项目(没有服务安装程序)生成的另一个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.