MMC可以';看不到已安装的.NET服务

MMC可以';看不到已安装的.NET服务,.net,windows,service,installation,mmc,.net,Windows,Service,Installation,Mmc,我有一个.NET windows服务项目和一个部署项目来为该服务创建MSI。在开发过程中,我已经多次安装/卸载该服务,但似乎有问题。服务似乎已安装且程序文件按预期存在,Windows添加/删除程序会看到新程序,但管理控制台(MMC)不会列出新安装的服务 如何让MMC识别此服务的存在?有一段时间,它工作得很好(如预期的那样出现在MMC中)。在一次卸载过程中,软件被删除,但服务仍在MMC中列出(显然它不会启动)。我通过Regedit成功地从MMC中删除了孤立服务,但现在重新安装服务时,MMC看不到它

我有一个.NET windows服务项目和一个部署项目来为该服务创建MSI。在开发过程中,我已经多次安装/卸载该服务,但似乎有问题。服务似乎已安装且程序文件按预期存在,Windows添加/删除程序会看到新程序,但管理控制台(MMC)不会列出新安装的服务

如何让MMC识别此服务的存在?有一段时间,它工作得很好(如预期的那样出现在MMC中)。在一次卸载过程中,软件被删除,但服务仍在MMC中列出(显然它不会启动)。我通过Regedit成功地从MMC中删除了孤立服务,但现在重新安装服务时,MMC看不到它


安装此服务后,如何让MMC看到它?

我知道这听起来很疯狂,但您是否尝试过重新启动。我知道在开发过程中注册/清理服务有时会很麻烦。我记得在测试安装程序时可能会发生奇怪的事情。另一个老把戏是点击桌面并点击F5,这可以迫使注册表重新加载(或者至少在很多个月前它有时还能工作)

注册表项是否回到注册表中?如果不是,那就是安装程序。检查以确保服务安装程序(不是msi安装程序,而是添加到服务中的类)正在正确执行。您可以尝试直接使用InstallUtil.exe,如果这样做有效,那么msi项目不会在主项目中获取服务安装程序类。如果不是,则可能是服务安装程序类设置不正确。我将创建一个虚拟服务项目,并将autogen代码与我拥有的代码进行比较


正在将文件的新版本复制到正确的位置。也有可能安装程序认为服务已经是最新的。这应该会弹出一个对话框警告你,但你可以检查是否所有其他操作都失败了。在这种情况下,您必须再次手动删除文件和注册表项。如果这不起作用,您可以使用procmon查看安装程序在注册表和文件系统中执行的操作,使其认为项目已安装。

很有帮助,但不是我需要的解决方案。我发现解决这个问题的唯一方法是回滚我的源代码(损失一天的工作!)。问题一定在源代码中,因为旧版本仍然有效。由于我只更改了主服务代码,而没有更改安装程序/部署,这很奇怪,因为我和您一样,确信问题出在安装程序上。无论如何,谢谢你的建议。@cymorg很高兴你使用了源代码管理。