Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更新此Windows服务&;用户界面应用程序_C#_.net_Updates_Auto Update - Fatal编程技术网

C# 如何更新此Windows服务&;用户界面应用程序

C# 如何更新此Windows服务&;用户界面应用程序,c#,.net,updates,auto-update,C#,.net,Updates,Auto Update,我正在寻求处理这种情况的一般方法的建议。我有一个包含5个组件的应用程序,如下所示: Windows使用共享库A服务A WindowsUI应用程序A使用共享库A Windows服务B使用库B 服务B执行的任务之一是检查更新、下载和验证更新文件,并启动将执行更新的实用工具updater.exe(或其他任何工具) updater.exe必须能够同时更新所有5个程序集。无论UI应用程序是否正在运行,它都应该能够执行更新 由于updater.exe是由服务B启动的,因此更新程序连接到服务、停止服务并在重新

我正在寻求处理这种情况的一般方法的建议。我有一个包含5个组件的应用程序,如下所示:

  • Windows
    使用共享
    库A服务A
  • Windows
    UI应用程序A
    使用共享
    库A
  • Windows
    服务B
    使用
    库B
  • 服务B执行的任务之一是检查更新、下载和验证更新文件,并启动将执行更新的实用工具
    updater.exe
    (或其他任何工具)

    updater.exe
    必须能够同时更新所有5个程序集。无论
    UI应用程序是否正在运行,它都应该能够执行更新

    由于
    updater.exe
    是由
    服务B
    启动的,因此更新程序连接到服务、停止服务并在重新启动之前替换文件没有问题。此外,更新程序还可以枚举正在运行的进程,并在未运行时替换
    UI应用程序。但由于
    库A
    是共享的,因此只能在UI未运行时替换它

    如果UI正在运行,如何从服务启动的进程更新
    UI应用程序
    库A
    ,包括在进程停止或终止时重新启动UI应用程序

    更一般地说,是否有执行此排序服务+库+ui应用程序更新的常见/典型方法?我很高兴重新考虑我的方法



    我应该提到的是,这些服务是通过命令行自行安装/卸载的。

    我假设您的应用程序是WPF。请检查以下库您是否考虑过使用ClickOnce重新打包您的应用程序?对服务B和updater.exe的需求应该消失了,尽管您可能需要做一些额外的工作来启动/停止服务A@null1941UI应用程序是WinForms应用程序。请尝试浏览clickonce,它可能会有所帮助