我使用VS 2012,由于安装项目已经从它中移除,所以我必须使用InstallUtil.exe。
我的windows服务应用程序中没有projectInstaller类。我在命令提示符下运行:
installutil FilesMonitoringService.exe 我得到:
C:\Program \ Microsoft 8\VC#>installutil "C:\Program \ Microsoft Visual 8\VC#>installutil ice.exe“Microsoft (R) .NET Framework安装实用程序版本2.0.50727.42版权(c) Microsoft。版权所有。 运行事务处理的安装。 开始安装阶段。请参阅C:\Program \ 8\VC#\CSharpProjects\MyService\MyService\bin\Release\MyService.exe程序集进度的日志文件的内容。该文件位于C:\Program \Microsoft 8\VC#\CSharpProj 8\VC#\CSharpProj安装程序集C:\Program\Microsoft 8\VC#\CSharpProjec 8\VC#\CSharpProjec受影响的参数是: logtoconsole = assemblypath = C:\Program \Microsoft 8\VC#\CSharpProjects\ MyService\MyService\bin\Release\MyService.exe logfile = C:\Program \Microsoft 8\VC#\CSharpProjects\MySer 8\VC#\CSharpProjects\MySer,在C:\Program \Microsoft 8\VC#\CSharpProjects\MyService\ MyService\bin\Release\MyService.exe程序集中找不到具有RunInstallerAttribute.Yes属性的公共安装程序。 安装阶段成功完成,提交阶段正在开始。请参阅C:\Program \ 8\VC#\CSharpProjects\MyService\MyService\bin\Release\MyService.exe程序集进度的日志文件的内容。该文件位于C:\Program \Microsoft 8\VC#\CSharpProj 8\VC#\CSharpProj提交程序集'C:\Program \Microsoft 8\VC#\CSharpProjec 8\VC#\CSharpProjec受影响的参数是: logtoconsole = assemblypath = C:\Program \Microsoft 8\VC#\CSharpProjects\ MyService\MyService\bin\Release\MyService.exe logfile = C:\Program \Microsoft 8\VC#\CSharpProjects\MySer 8\VC#\CSharpProjects\MySer,在C:\Program \Microsoft 8\VC#\CSharpProjects\MyService\ MyService\bin\Release\MyService.exe程序集中找不到具有RunInstallerAttribute.Yes属性的公共安装程序。删除InstallState文件,因为没有安装程序。 提交阶段成功完成。 已处理的安装已经完成。 C:\程序文件\ 8\VC#>
OK,似乎所有东西都已经安装好了。但!当我转到“任务管理器”的“服务”页面时,我找不到我的服务。
可能是什么原因?
提前感谢!
编辑:我指出我没有projectInstaller类,因为如果我添加它(在designer ->中添加安装程序)并运行installutil命令,就会得到:(近似翻译)
安装FilesMonitoringService.在日志程序中创建EventLog FilesMonitoringService .
在此设置阶段,出现了异常。
System.Security.SecurityException:没有找到源,但是任何或所有日志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 -> Automatic
serviceProcessInstaller1:-> LocalSystem账户
或者可以不使用projectInstaller来实现它?
发布于 2013-02-22 07:59:20
好吧,有几件事:
1)你需要projectInstaller。
2) YourProject ->属性;启动项目-> YourProject.Program
3)建造
4)“以管理员身份运行”命令提示符!
现在一切都正常了。
完整教程链接
发布于 2013-02-21 18:14:33
我现在没有VS2012的副本来测试它,但是我相信您的问题与
我的windows服务应用程序中没有projectInstaller类
部分。
来自msdn
安装组件在安装它的系统上注册一个单独的服务,并让服务控制管理器知道该服务的存在
发布于 2015-05-23 06:07:33
这看起来很简单,但是在编写installutill参数时要仔细检查,因为您可能会将服务的exe文件与通过编译引用的项目(没有服务安装程序)生成的另一个exe文件混为一谈,并使其失败。
https://stackoverflow.com/questions/15009163
复制相似问题