【发布时间】:2014-02-02 23:36:09
【问题描述】:
几年前,我开发了一个 Windows 服务。当前版本使用VS2010,项目附带服务安装程序。一切正常,我最后一次发布是在 2013 年初(大约一年前)。
我对项目进行了重大更改并尝试发布,但是生成的“setup.exe”文件似乎不是服务安装程序,因为运行时它没有注册服务并出现以下消息错误:
'无法从命令行或调试器启动服务。必须先安装 Windows 服务(使用 installutl.exe),然后使用 ServerExplorer、Windows 服务管理工具或 NET START 命令启动。'
现在,在你去这里之前,这是一个很好的简单问题(我希望这是个愚蠢的问题),我已经按照下面的链接指向“T”,安装程序设置为服务,并且程序之间的 ServiceName 匹配类和安装程序。
http://msdn.microsoft.com/en-us/library/ddhy0byf(v=vs.110).aspx
http://msdn.microsoft.com/en-us/library/zt39148a%28v=vs.100%29.aspx
此外,我还尝试了以下方法:
- 在 VS2012 中加载项目 - 还是一样的错误
- 按照上述步骤创建了一个新的空白服务以添加安装程序。这又导致了同样的错误,所以项目不能无动于衷。
有没有人知道问题可能是什么,或者要检查的属性/设置?我记得当我使用 VS2008 时,安装程序被设置为一个单独的项目。我可以沿着这条路走,但我真的很想用这种方法找出问题所在。
【问题讨论】:
-
Microsoft 已弃用 Visual Studio 2012 中的 Windows Installer 项目类型。他们提供了 Install Shield LE 作为替代品,但它的工作方式不同,并且在许多情况下执行方式不同任务。
-
哦不,我的备份解决方案不见了:|
-
您能否稍微澄清一下您的情况 - 您提到了 setup exe,但错误消息暗示您正在 IDE 中运行?据我所知(远非穷举),您无法像这样调试服务。当我上次编写服务时,我添加了另一个启动项目以允许运行时调试,并在测试完全安装的服务时将大量日志记录到事件日志中。
-
这原来是安装程序的问题。正如@ErikTheViking 所说,内置安装程序已被弃用,虽然我的项目中仍有它,但它已停止正常安装服务。我设法通过使用 WiX wix.codeplex.com 的第 3 方安装程序工具集解决了这个问题
-
@PaulEden 你可以debug services。
标签: .net visual-studio-2012 windows-services