我已经阅读了此论坛上的其他类似帖子,我保证!然而,他们没有帮助我
我想为我的服务应用创建一个安装程序(msi),以便在客户不必使用命令行的情况下自动安装它。我知道这可以做到。
我在Windows 7上使用Visual Studio 2008 Team System。我的Windows帐户具有管理员权限。我尝试在Windows XP计算机上安装该服务时获得相同的体验。
以下是我为实现这一目标所做的工作:
创建服务应用程序并独立测试工作程序代码。我知道一旦开始,服务确实有效。
使用serviceInstaller和serviceProcessInstaller为项目添加了安装程序。 ServiceInstaller start type = manual,serviceProcessInstaller account = localsystem。
在解决方案中添加了一个安装项目,将其属性页条目更改为合理值(作者等)。添加了自定义操作(服务项目的主要输出),用于安装操作到卸载操作。
构建解决方案。
执行msi文件以安装该服务。错误 - “无法从命令行或调试程序启动服务。必须首先安装Windows服务...等。”
该服务在“服务”管理工具中不可见,因此显然尚未安装。但是,AFAICS的所有内容都已复制到指定的安装文件夹。
两个问题:
我有条不紊地遵循msdn文档(分散所有 在这个地方,必须说)但是任何人都可以建议我可能错过了设置这个,这将导致服务不 安装?
为什么我会尝试启动服务 已明确将启动设置为手动?
我尝试使用InstallUtil手动安装服务器,但也失败了。该安装日志是:
Installing assembly 'C:\Program Files (x86)\Autoscribe\Matrix Gemini LIMS\Scheduler\MatrixTaskLauncher.exe'.
Affected parameters are:
logtoconsole =
assemblypath = C:\Program Files (x86)\Autoscribe\Matrix Gemini LIMS\Scheduler\MatrixTaskLauncher.exe
logfile = C:\Program Files (x86)\Autoscribe\Matrix Gemini LIMS\Scheduler\MatrixTaskLauncher.InstallLog
Installing service MatrixTaskLauncherService...
Creating EventLog source MatrixTaskLauncherService in log Application...
Rolling back assembly 'C:\Program Files (x86)\Autoscribe\Matrix Gemini LIMS\Scheduler\MatrixTaskLauncher.exe'.
Affected parameters are:
logtoconsole =
assemblypath = C:\Program Files (x86)\Autoscribe\Matrix Gemini LIMS\Scheduler\MatrixTaskLauncher.exe
logfile = C:\Program Files (x86)\Autoscribe\Matrix Gemini LIMS\Scheduler\MatrixTaskLauncher.InstallLog
Restoring event log to previous state for source MatrixTaskLauncherService.
没有多少亮点。 : - (
TIA
答案 0 :(得分:1)
原来是服务应用程序的错误(不知道是什么)。我从解决方案中删除了它并创建了一个新的,添加了我的工人类代码并且嘿presto,它安装了服务,我也可以启动它。