无法在InstallUtil工具的帮助下安装Windows服务
我使用VS 2012,因为安装项目已从中删除,我必须使用InstallUtil.exe。
我的Windows服务应用程序中没有projectInstaller类。 我在命令提示符下运行:
installutil FilesMonitoringService.exe
我明白了:
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安装实用程序版本2.0.50727.42版权所有(c)Microsoft Corporation。 版权所有。
运行事务安装。
开始安装的安装阶段。 请参阅日志文件的内容以获取C:\ Program Files \ Microsoft Visual Studi 8 \ VC#\ CSharpProjects \ MyService \ MyService \ bin \ Release \ MyService.exe程序集的进度。 该文件位于C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProj ects \ MyService \ MyService \ bin \ Release \ MyService.InstallLog。 安装程序集’C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjec ts \ MyService \ MyService \ bin \ Release \ MyService.exe’。 受影响的参数是: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没有具有RunInstallerAttribute.Yes属性的公共安装程序可以在C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjects \ MyService \ MyService \ bin中找到\ Release \ MyService.exe程序集。
安装阶段成功完成,提交阶段正在开始。 请参阅日志文件的内容以获取C:\ Program Files \ Microsoft Visual Studi 8 \ VC#\ CSharpProjects \ MyService \ MyService \ bin \ Release \ MyService.exe程序集的进度。 该文件位于C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProj ects \ MyService \ MyService \ bin \ Release \ MyService.InstallLog。 提交程序集’C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjec ts \ MyService \ MyService \ bin \ Release \ MyService.exe’。 受影响的参数是: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没有具有RunInstallerAttribute.Yes属性的公共安装程序可以在C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjects \ MyService \ MyService \ bin中找到\ Release \ MyService.exe程序集。 删除InstallState文件,因为没有安装程序。
提交阶段成功完成。
事务安装已完成。
C:\ Program Files \ Microsoft Visual Studio 8 \ VC#>
好的 ,似乎已经安装了所有东西。 但! 当我到任务管理器到服务页面时,我找不到我的服务。
可能是什么原因?
提前致谢!
编辑:我指出我没有projectInstaller类,因为如果我添加它(在设计器 – >添加安装程序)并运行installutil命令我得到:(近似翻译)
FilesMonitoringService的安装…在日志jornal应用程序中创建EventLog FilesMonitoringService …
在此设置阶段发生exception。
System.Security.SecurityException:找不到源,但找不到任何或所有log jornals。 不可用的jornals:安全。
反冲阶段开始。
//很多文字
后坐阶段已经成功
安装组操作已执行。 安装失败并且执行了反冲。
因此,如果我将projectInstller添加到我的Windows服务,它肯定无法安装installUtil。
这是生成的代码:
[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我需要在AfterInstall方法中加入一些代码吗? 我还在properties
窗口中设置了这个properties
:
serviceInstaller1:ServiceName – > FileMonitoringService,StartType – > Automatic
serviceProcessInstaller1:Account – > LocalSystem
或者它可以在没有projectInstaller的情况下实现吗?
好的,有几件事:
1)您需要projectInstaller。
2)YourProject – > properties; 启动项目 – > YourProject.Program
3)建立
4)“以管理员身份运行”命令提示符!
现在一切都有效。
完整的教程链接
我没有VS2012的副本来测试它,但我相信你的问题与它有关
我的Windows服务应用程序中没有projectInstaller类
部分。
来自msdn :
安装组件在要安装它的系统上注册单个服务,并让服务控制管理器知道该服务是否存在
这看起来很简单,但在编写installutill参数时请仔细检查,因为您可能会将服务的exe文件与编译引用项目(没有服务安装程序)生成的另一个exe文件混淆,并使其失败。