2014-03-05 25 views
8

我有一個C#應用程序,我主要關心的是將自動更新推送到運行我的軟件的客戶端。這些更新可以是從新的/修補過的DLL到新的資源文件的任何內容。是否存在與最終用戶部署內容的NuGet等價物?

我知道我可以創建一個ClickOnce應用程序來獲得部分路徑,但是它不允許太多的控制(例如,我希望能夠輕鬆地將第三方組件與我的軟件捆綁在一起或者能夠讓用戶決定他們想要更新哪些組件)。

我發現像NotePad ++這樣的程序有一個專門的更新程序,但我希望我可以從別人那裏捎帶回來,而不是從頭開始自己更新。

Notepad++ Plugin Manager

我有哪些選擇?

+1

您可以舉辦自己的NuGet飼料(或只是使用nuget.org)和使用的NuGet庫文件傳送到客戶端。所以NuGet相當於... NuGet。 –

+0

當我落得這樣做包括蝙蝠與我的計劃,將自動輪詢服務器,看看有什麼最新的版本是腳本。如果有更新的版本,我通知用戶。如果用戶選擇更新。我運行這些.bat文件來下載新版本並安裝它。但是,如果安裝出現任何問題,那麼用戶就會被洗掉。如果有一個簡單的框架來做到這一點,那就太棒了! – mason

+2

https://chocolatey.org/ – SLaks

回答

4

有幾個不同的你可以檢查出來。

這一個已經談論/存在了一段時間,但我沒有聽到閹的任何消息或沒有它實際上是準備尚未使用

https://github.com/Squirrel/Squirrel.Windows

https://www.nuget.org/packages/NuSelfUpdate/

https://www.nuget.org/packages/NuGetUpdate/

會推薦這一張,因爲我上次打開一張他幾乎立即發出的票據。

https://www.nuget.org/packages/Sidewinder.Core/

他們沒有將溶液中的100%下降,因爲應用程序的更新是那些東西,是很難一概而論的。

對我來說是我最後做的是兩件事

1)使用http://www.myget.org主辦我的更新,並推出自己的系統,下載/重啓/更新的事情之一。

2)使用AWS S3上的組件索引滾動我自己的組件。 xml列出組件並指向url以獲取每個更新。從那裏你的應用程序決定如何/何時停止/更新/重新啓動它。

而且,如果我更新的主要應用,我一般是怎麼做的(如果應用程序已經運行)

  1. 檢查更新。
  2. 如果有更新,請下載它。
  3. 在應用程序啓動時,請在本地檢查更新文件。
  4. 如果它存在,安裝它靜靜地

如果應用程序沒有運行我做一個更新檢查/下載/安裝在啓動(但只有當它的關鍵,人都跑絕對是最新)。儘管如此,這些框架都不會100%滿足您的需求,因爲沒有任何一個場景是相同的,但希望它們能夠讓您儘可能多地完成任務。

2

大廈在SLaks評論。在Linux世界

的巧克力是周圍的NuGet的包裝用於安裝應用程序,類似於喜歡的應用程序,搞定。它是一種環繞各種安裝程序的工具。

如果你的客戶滿意在命令行運行,巧克力味是將應用發佈一個很好的解決方案。

WiX installer把自己描述爲「最強大的一組可用來創建Windows安裝體驗。免費和自2004年以來開源工具!」所以取決於你想要去多麼複雜,你也可以看看它。

相關問題