安装在Visual Studio中创建的Windows服务
当我在Visual Studio 2010中创建一个新的Windows服务时,我收到消息说明使用InstallUtil和net start来运行该服务。
我尝试了以下步骤:
第4步的输出
运行交易安装。
开始安装的安装阶段。
请参阅C: Users myusername Documents Visual Studio 2010 Projects TestService TestService obj x86 Debug TestService.exe程序集的进度的日志文件的内容。
该文件位于C: Users myusername Documents Visual Studio 2010 Projects Tes tService TestService obj x86 Debug TestService.InstallLog。
安装程序集'C: Users myusername Documents Visual Studio 2010 Projects TestS ervice TestService obj x86 Debug TestService.exe'。
受影响的参数是:
logtoconsole =
logfile = C: Users myusername Documents Visual Studio 2010 Projects TestService T estService obj x86 Debug TestService.InstallLog
assemblypath = C: Users myusername Documents Visual Studio 2010 Projects TestServ ice TestService obj x86 Debug TestService.exe
在C: Users myusername Documents Visual Studio 2010 Projects TestService TestSevice obj x86 Debug TestService.exe程序集中找不到具有RunInstallerAttribute.Yes属性的公用安装程序。
安装阶段已成功完成,Commit阶段开始。
请参阅C: Users myusername Documents Visual Studio 2010 Projects TestService TestService obj x86 Debug TestService.exe程序集的进度的日志文件的内容。
该文件位于C: Users myusername Documents Visual Studio 2010 Projects Tes tService TestService obj x86 Debug TestService.InstallLog。
提交程序集'C: Users myusername Documents Visual Studio 2010 Projects TestS ervice TestService obj x86 Debug TestService.exe'。
受影响的参数是:
logtoconsole =
logfile = C: Users myusername Documents Visual Studio 2010 Projects TestService T estService obj x86 Debug TestService.InstallLog
assemblypath = C: Users myusername Documents Visual Studio 2010 Projects TestServ ice TestService obj x86 Debug TestService.exe
在C: Users myusername Documents Visual Studio 2010 Projects TestService TestSevice obj x86 Debug TestService.exe程序集中找不到具有RunInstallerAttribute.Yes属性的公用安装程序。
删除InstallState文件,因为没有安装程序。
承诺阶段成功完成。
交易安装已完成。
第5步的输出
服务名称无效。
通过键入NET HELPMSG 2185可获得更多帮助。
您需要在设计器中打开Service.cs文件,右键单击它并选择菜单选项“添加安装程序”。
它不会立即安装......您需要先创建安装程序类。
服务安装程序的一些参考:
如何:将安装程序添加到您的服务应用程序
相当古老......但这就是我所说的:
Windows服务在C#中:添加安装程序(第3部分)
通过这样做, ProjectInstaller.cs
将自动创建。 然后你可以双击这个,输入设计器,并配置组件:
serviceInstaller1
具有服务本身的属性: Description
, DisplayName
, ServiceName
和StartType
是最重要的。
serviceProcessInstaller1
有这个重要的属性: Account
thas是服务将运行的帐户。
例如:
this.serviceProcessInstaller1.Account = ServiceAccount.LocalSystem;
看着:
在C: Users myusername Documents Visual Studio 2010 Projects TestService TestSevice obj x86 Debug TestService.exe程序集中找不到具有RunInstallerAttribute.Yes属性的公用安装程序。
看起来您的代码中可能没有安装程序类。 这是一个继承自Installer
的类,它将告诉installutil
如何将您的可执行文件安装为服务。
Ps我在这里有我自己的小自我安装/可调试Windows服务模板,您可以复制或使用代码:可调试,自行安装Windows服务
这是制作安装程序并摆脱该错误消息的另一种方法。 此外,似乎VS2015 express没有“添加安装程序”菜单项。
您只需创建一个类并添加下面的代码并添加参考System.Configuration.Install.dll。
using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;
namespace SAS
{
[RunInstaller(true)]
public class MyProjectInstaller : Installer
{
private ServiceInstaller serviceInstaller1;
private ServiceProcessInstaller processInstaller;
public MyProjectInstaller()
{
// Instantiate installer for process and service.
processInstaller = new ServiceProcessInstaller();
serviceInstaller1 = new ServiceInstaller();
// The service runs under the system account.
processInstaller.Account = ServiceAccount.LocalSystem;
// The service is started manually.
serviceInstaller1.StartType = ServiceStartMode.Manual;
// ServiceName must equal those on ServiceBase derived classes.
serviceInstaller1.ServiceName = "SAS Service";
// Add installer to collection. Order is not important if more than one service.
Installers.Add(serviceInstaller1);
Installers.Add(processInstaller);
}
}
}
链接地址: http://www.djcxy.com/p/44213.html