作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我构建了一个 C#、.NET3.5、安装 Windows 服务的 Web 应用程序(以 NetworkService 用户身份运行)。该服务充当网络上任何机器的专用网络服务器,用户使用他们的浏览器连接到该服务。
整个过程是使用 Visual Studio 2008 构建的 msi 文件安装的。msi 文件安装并运行部署应用程序,它负责设置用户和权限,并将 exe 作为服务安装。
如果我决定增强应用程序(或发现并修复错误),我可以生成一个新的 msi 文件,并让用户在运行我的应用程序的所有机器上运行它。但我宁愿这是自动发生的(包括从我的网站下载更新,并部署它们)。
因为它作为服务运行,所以它不是特定于用户的,所以我知道单击一次部署不是一个选项。
有什么办法可以实现吗?
最佳答案
如果你真的不想在这个过程中有任何用户交互,你能不能有第二个服务,它是更新看门狗,识别主服务的新版本何时可用,然后处理下载/停止/安装/开始主要服务?
关于c# - 如何创建无需用户交互即可自行更新的 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826435/
我发现以下帖子非常有帮助: How to pickle yourself? 但是,此解决方案的局限性在于,重新加载类时,它不会以其“运行时”状态返回。即它将重新加载所有变量等以及类在转储时的一般状态.
我是一名优秀的程序员,十分优秀!