我已经看到了很多这样的问题,但要么没有答案,要么答案不起作用/不适用于我的情况。
我用 C# 制作了一个基本的 Windows 服务项目(使用 VS 11 Dev Preview,但在 2010 年可能应该类似)。它编译得很好。当我在编译的 .exe 上运行 InstallUtil.exe 时,它会向命令行输出以下内容:
运行事务安装。
开始安装的安装阶段。查看 C:\Users\gzak\Documents\Visual Studio 11\Projects\mysol\myproj\bin\Debug\myproj.exe 程序集进度的日志文件内容。该文件位于 C:\Users\gzak\Documents\Visual Studio 11\Projects\mysol\myproj\bin\Debug\myproj.InstallLog。安装程序集“C:\Users\gzak\Documents\Visual Studio 11\Projects\mysol\myproj\bin\Debug\myproj.exe”。受影响的参数是:logtoconsole = logfile = C:\Users\gzak\Documents\Visual Studio 11\Projects\mysol\myproj\bin\Debug\myproj.InstallLog
程序集路径 = C:\Users\gzak\Documents\Visual Studio 11\Projects \mysol\myproj\bin\Debug\myproj.exe安装阶段成功完成,提交阶段开始。查看 C:\Users\gzak\Documents\Visual Studio 11\Projects\mysol\myproj\bin\Debug\myproj.exe 程序集进度的日志文件内容。该文件位于 C:\Users\gzak\Documents\Visual Studio 11\Projects\mysol\myproj\bin\Debug\myproj.InstallLog。提交程序集“C:\Users\gzak\Documents\Visual Studio 11\Projects\mysol\myproj\bin\Debug\myproj.exe”。受影响的参数是:logtoconsole = logfile = C:\Users\gzak\Documents\Visual Studio 11\Projects\mysol\myproj\bin\Debug\myproj.InstallLog
程序集路径 = C:\Users\gzak\Documents\Visual Studio 11\Projects \mysol\myproj\bin\Debug\myproj.exe提交阶段成功完成。
事务安装已完成。
所以看起来一切都安装正确,但它没有出现在服务列表中,我已经尝试了很多次和多次刷新;它根本不存在。有几点需要注意:
- myproj.exe 对 some.dll 有依赖关系,它也在输出文件夹中(如果有依赖关系以某种方式需要不同的进程)。
- 我已经尝试过在项目中添加和不添加安装程序类。是否必须将其添加到单独的项目中才能正常工作?如果我不将安装程序类添加到项目中,我在命令行中收到一条不同的消息,它抱怨缺少安装程序,并且由于它在我添加时消失了,我认为它正在工作......或者不是?
此外,是否有任何替代 Windows 服务的方法?如果它们在一般情况下使用起来很痛苦,见鬼,我几乎宁愿手动将我的程序设置为在启动时以老式方式启动,并让它运行而不通过服务管理器。至少这样我可以随意在调试器中启动/停止它。微软真的在这里丢球了。