2013-02-21 325 views
11

我使用VS 2012,并且由于安装项目已从中删除,因此我必须使用InstallUtil.exe。无法使用InstallUtil工具帮助安装Windows服务

我的windows服务应用程序中没有projectInstaller类。我在命令提示符下运行:

installutil FilesMonitoringService.exe 

我得到:

C:\ Program Files文件\微软的Visual Studio 8 \ VC#> installutil“C:\ Program Files文件\麦克风 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 \ 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在C:\ Program Files \ Microsoft Visual Studio 8 \ VC#中找不到具有RunInstallerAttribute.Yes属性的公共安装程序 vice \ MyService \ \ 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 \ Release \ MyService.InstallLog。 提交程序集'C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ CSharpProjec ts \ MyService \ MyService \ bin \ Release \ MyService.exe'。 受影响的参数是: logtoconsole = assemblypath = C:\ Program Files文件\微软的Visual Studio 8 \ VC#\ CSharpProjects \ 为MyService \为MyService \ BIN \发布\ MyService.exe 日志文件= C:\ Program Files文件\微软的Visual在C:\ Program Files \ Microsoft Visual Studio 8 \ VC#中找不到具有RunInstallerAttribute.Yes属性的公共安装程序 vice \ MyService \ \ CSharpProjects \ MyService \ MyService \ bin \ Release \ MyService.exe程序集。 删除InstallState文件,因为没有安装程序。

提交阶段已成功完成。

交易安装已完成。

C:\ Program Files文件\微软的Visual Studio 8 \ VC#>

OK,好像一切都已经安装完毕。但!当我去任务管理器到服务页面时,我找不到我的服务。

可能是什么原因?

在此先感谢!

编辑:我指出,我没有projectInstaller类,因为如果我添加它(在设计师 - >添加安装程序)和installutil命令来运行我得到:(近似翻译)

安装FilesMonitoringService ......在日志新闻报申请 创作的EventLog FilesMonitoringService的...

在此设置阶段出现异常。

System.Security.SecurityException:未找到源,但未能找到任何或所有日志记录。不可用jornals:安全。

反冲阶段开始。

//大量文字

的反冲阶段已经succeded

设置组操作来执行。 安装失败并执行反冲。

因此,如果我将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:服务名称 - > FileMonitoringService,StartType - >自动
serviceProcessInstaller1:帐号 - >本地系统

还是可以不projectInstaller实施?

+0

2017评论 - 这个主题有几个有用的答案和评论在这个类似的SO贴子。 http://stackoverflow.com/questions/7922105/install-windows-service-created-in-visual-studio – 2017-01-22 18:17:02

回答

18

行,有是几件事情:

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

现在一切正常。

complete tutorial link

+1

我认为你的意思启动“对象” – 2014-01-08 08:12:57

+0

“以管理员身份运行”是问题我。谢谢:) – fabriciorissetto 2015-08-29 21:29:58

+0

2017注 - 如果这个答案没有解决你所有的问题,还有其他的细节在下面SO帖子中提到。 http://stackoverflow.com/questions/7922105/install-windows-service-created-in-visual-studio – 2017-01-22 18:20:35

1

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

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

部分。

msdn

安装组件被安装 其所在系统上注册一个个性化的服务,让服务控制管理器 知道服务存在

+0

看看我的更新 – 2013-02-21 18:34:29

0

这似乎微不足道,但仔细检查,当你正在写的installutill参数,因为你可能会混淆通过引用的项目的编译生成另一个exe文件服务的EXE文件(即没有服务安装程序)并使其失败。