无法在InstallUtil工具的帮助下安装Windows服务

时间:2013-02-21 18:00:38

标签: c# .net windows-services

我使用的是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的日志文件的内容   o 8 \ VC#\ CSharpProjects \ MyService \ MyService \ bin \ Release \ MyService.exe程序集   进展。   该文件位于C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProj   ECTS \为MyService \为MyService \ BIN \发布\ MyService.InstallLog。   安装程序集'C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjec   TS \为MyService \为MyService \ BIN \发布\ MyService.exe”。   受影响的参数是:      logtoconsole =      assemblypath = C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjects \   为MyService \为MyService \ BIN \发布\ MyService.exe      logfile = C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjects \ MySer   副\的MyService \ BIN \发布\ 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的日志文件的内容   o 8 \ VC#\ CSharpProjects \ MyService \ MyService \ bin \ Release \ MyService.exe程序集   进展。   该文件位于C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProj   ECTS \为MyService \为MyService \ BIN \发布\ MyService.InstallLog。   提交程序集'C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjec   TS \为MyService \为MyService \ BIN \发布\ MyService.exe”。   受影响的参数是:      logtoconsole =      assemblypath = C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjects \   为MyService \为MyService \ BIN \发布\ MyService.exe      logfile = C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjects \ MySer   副\的MyService \ BIN \发布\ 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 ...   在log jornal Application中创建EventLog FilesMonitoringService ...

在此设置阶段发生了异常。

  

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窗口设置了这个属性:

serviceInstaller1:ServiceName - > FileMonitoringService,StartType - >自动
serviceProcessInstaller1:帐户 - >本地系统

或者可以在没有projectInstaller的情况下实现吗?

3 个答案:

答案 0 :(得分:18)

好的,有几件事情:

1)您需要projectInstaller 2)YourProject - >性能;启动项目 - > YourProject.Program
3)建造 4)“以管理员身份运行”命令提示符!

现在一切正常。

complete tutorial link

答案 1 :(得分:1)

我现在没有VS2012的副本来测试它,但我相信你的问题与

有关。
  

我的Windows服务应用程序中没有projectInstaller类

一部分。

来自msdn

  

安装组件在系统上注册单个服务   它正在安装它并让服务控制管理器   知道服务存在

答案 2 :(得分:0)

这似乎微不足道,但在编写installutill参数时请仔细检查,因为您可能会将服务的exe文件与引用项目(没有服务安装程序)的编译生成的另一个exe文件混淆并制作它失败。