C# 无法安装新版本的.NET Windows服务

C# 无法安装新版本的.NET Windows服务,c#,.net,windows-services,C#,.net,Windows Services,我有一个64位的Windows服务,用C#编写。它以前安装在Windows 7 64位计算机上。我们对它做了一些更改,并正在尝试将新版本部署到同一台机器上 然而,无论我们做什么,我们看到的行为似乎表明正在运行的服务是旧版本 以下是我们为解决此问题而采取的步骤: 已使用INSTALLUTIL卸载该服务 使用SC DELETE验证是否已将其删除 已删除服务管理单元中服务属性页中指定的服务安装目录中的所有文件 从HKLM\System\CurrentControlSet001\Services中删除了

我有一个64位的Windows服务,用C#编写。它以前安装在Windows 7 64位计算机上。我们对它做了一些更改,并正在尝试将新版本部署到同一台机器上

然而,无论我们做什么,我们看到的行为似乎表明正在运行的服务是旧版本

以下是我们为解决此问题而采取的步骤:

  • 已使用INSTALLUTIL卸载该服务
  • 使用
    SC DELETE
    验证是否已将其删除
  • 已删除服务管理单元中服务属性页中指定的服务安装目录中的所有文件
  • HKLM\System\CurrentControlSet001\Services
    中删除了与服务关联的所有注册表项
  • 使用新版本号重新生成服务及其依赖项
  • 已将新版本部署到服务的安装目录
  • 使用INSTALLUTIL重新安装了服务
  • 已验证服务管理单元和注册表是否指向服务可执行文件的正确位置
  • 尽管如此,新部署的服务的行为似乎与以前的版本相同。(具体地说,它是将消息注入MSMQ中的队列中,此时该功能已被删除,并且可以验证是否已这样做。)

    我们确信我们正在部署正确的版本。即使我们从Visual Studio项目生成文件夹(
    bin\x64\release
    )安装新版本的服务,也会发生相同的行为

    为什么会发生这种情况?我如何解决它?服务是否缓存在某个位置,并在安装时从缓存运行?如果是,它们在哪里?我如何正确清除它们


    或者这只是我在代码中写的东西?

    “似乎表明”看起来非常模糊。做一些日志记录/跟踪。应用程序不可能运行不存在的文件。顺便说一句,你是否做了重新启动电脑的第一步?你是否更改了现有的代码?还是您从头开始重新编写服务。。?我会确保所有引用都指向新的.dll的正确路径,也会对解决方案进行清理、重建,我会检查项目文件以确保其正确更新,等等。。尝试创建一个新的服务项目,然后复制粘贴.cs文件等。。进入新项目。。还要检查.config文件,确保它们也已正确更新。。当我们不坐在你面前时,很难知道你做了什么或没有做什么are@cFrozenDeath我选择“似乎表明”非常具体,因为经验告诉我,我认为我看到的并不总是我所看到的。该服务已修改,因此只有在发生错误时才应该写入消息队列。但是,它正在向队列写入数千条信息性消息,就像以前的版本一样。新版本中没有将信息性消息写入队列的代码。@MethodMan服务已被修改,而不是从头重写。在这一点上,我相当肯定,我们已经验证了所有引用都指向正确的路径(如问题中的步骤所示)。但是,我愿意接受我在某些地方遗漏了一些东西,因为某些东西显然不起作用。@MethodMan配置文件是正确的,并且我已经仔细检查了程序集上的版本号。他们是对的。