簡體   English   中英

自動更新 C# Windows 服務

[英]Auto Updating C# Windows Service

我有一個用 C# 編寫的 Windows 服務,在 Windows 10 和 11 台機器上運行。

現在我想添加一些自動更新功能。 在我的研究中,我發現了奧馬哈。 我可以看到,我需要一個服務器部分。 但是從哪里獲得服務器呢? 由於某些要求,我需要自己托管更新服務器,而不是將其作為服務購買。

或者還有什么我可以用作自動更新程序的東西嗎?

這是一個非常廣泛的問題,並沒有真正明確的答案;

對於任何“自動更新”操作,您都需要一個“服務器部分”(如您所稱)來托管您的新更新。 這實際上可能是任何東西,即使是 GitHub 頁面就足夠了,但不是推薦的解決方案。

如果我站在你的立場上,我會在某個地方托管一個帶有專用(子)域的虛擬機,這樣你就可以完全控制,但話雖如此:請繼續閱讀......

您需要托管 2 項:“我當前托管的版本”和“版本本身”(因為您不想每次啟動時都下載完整的服務)。 所以“版本”部分可能只是一個簡單的 JSON 帶有版本號,如果當前版本與新版本不匹配,您可能需要下載更新並更新應用程序。

但你也提到這是一項服務。 自動更新不是一件容易的事。 當然,您可以更新安裝服務的文件夾中的文件(我的意思是盡可能廣泛:有一個選項並非所有機器都具有相同的文件夾) - 您無法更新文件是“當前使用的” - 實際上幾乎總是用於服務。 因此,您首先需要停止服務,更新文件並在更新后重新啟動。 如果更改失敗(否則根本沒有服務可啟動),使用(也是一項任務)選項回滾。

I would suggest not looking into Omaha since it's C based and not C# based (as you tagged your question), it would lead you into a world of hurt where you assume C and C# are alike (but far from the truth in most cases) . 除了 C 和 C# 之外 - Omaha 本身就像一個服務,這是一件好事,但很可能不是你想要的 - 你是否希望“第二次更新服務”每隔 x 次搜索新版本或你想控制這個流程嗎(無需用戶干預)。

我知道這提出了比答案更多的問題,但如果我是你,我會重新考慮“什么”“如何”和“如果”部分,然后我會為“只有 11 台機器”創建一個自動更新的東西"(不要居高臨下——一點也不)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM