是否有NuGet等效项才能将内容部署到最终用户? [英] Is there a NuGet equivalent for deploying content to end users?
问题描述
我有一个c#应用程序,我主要关心向运行我的软件的客户端推出自动更新。这些更新可以是从新的/修补的dll到新的资源文件的任何内容。
我知道我可以创建一个ClickOnce应用程序以实现该功能,但是它不能允许我进行很多控制(例如,我希望能够使用我的软件轻松地捆绑第三方组件,或者能够让用户确定他们想要更新哪些组件)。
我看到诸如NotePad ++之类的程序具有专用的更新程序,但我希望我可以从其他人中受益,而不是从头开始开发自己的更新程序。
我有什么选择?
您可以签出一些不同的选项。
这个话题已经讨论了一段时间了,但是我还没有听到任何关于它是否真的可以使用的消息
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以获取每次更新。
此外,如果我要更新主应用程序,通常情况下我该如何做(如果应用程序已经在运行)
- 检查更新。
- 如果有更新,请下载
- 在应用程序启动时,请在本地检查更新文件。
- 如果存在,请以静默方式安装
如果应用程序未在运行,我会在启动时进行更新检查/下载/安装(但这仅在人们运行绝对最新的状态非常重要时)
最后,这些框架都无法100%满足您的需求,因为没有相同的情况,希望它们能为您提供大部分帮助。 / p>
I have a c# application and I am mainly concerned with pushing out automatic updates to clients running my software. These updates can be anything from a new / patched dll to new resource file.
I know I can create a ClickOnce application to get part way there, but it doesn't allow much control as I would like (for example, I want to be able to easily "bundle" 3rd party components with my software or be able to have the user decide which components they want to have updated).
I see that programs like NotePad++ have a dedicated updater, but I'm hoping that I can piggy back from others as opposed to rolling my own updater from scratch.
What are my options?
There are a few different ones you can check out.
This one has been talked about/around for awhile, but I haven't heard any news of wether or not it's actually ready to be used yet
https://github.com/Squirrel/Squirrel.Windows
https://www.nuget.org/packages/NuSelfUpdate/
https://www.nuget.org/packages/NuGetUpdate/
Would recommend this one, as last time I opened a ticket he addressed it almost immediately.
https://www.nuget.org/packages/Sidewinder.Core/
None of them will be a 100% drop in solution because application updating is one of those things that's hard to generalize.
For me what I end up doing is one of two things
1) Use http://www.myget.org to host my updates, and roll my own system that downloads/restarts/updates things.
2) Roll my own with a component index on AWS S3. The xml lists the components and points to the url to get each update. From there your application decides how/when to stop/update/restart it.
Also, if I'm updating the main application, generally how I do it(If the application is already running)
- Check for an update.
- If there is an update, download it.
- On start of the application, check for the update file locally.
- If it exists, install it silently
If the application isn't running I do an update check/download/install on start(but that's only when it's critical that people are running the absolute latest).
In the end though, none of those frameworks will 100% fit your needs, because no scenario is the same, hopefully they get you most of the way though.
这篇关于是否有NuGet等效项才能将内容部署到最终用户?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!