是否有一个NuGet等效的内容部署到最终用户?

Mic*_*ael 8 c# clickonce patch updates

我有ac#应用程序,我主要关注的是推出运行我的软件的客户端的自动更新.这些更新可以是从new/patched dll到新资源文件的任何内容.

我知道我可以创建一个ClickOnce应用程序以获得部分方式,但它不允许我想要的太多控制(例如,我希望能够轻松地"捆绑"第三方组件与我的软件或能够让用户决定他们想要更新哪些组件.

我看到像NotePad ++这样的程序有一个专用的更新程序,但是我希望我可以从别人那里捎带而不是从头开始滚动我自己的更新程序.

Notepad ++插件管理器

我有什么选择?

Kel*_*ton 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% 满足您的需求,因为没有一个场景是相同的,但希望它们能帮助您大部分。