Fuentes de actualización
Una fuente de actualización le indica a UpdateManager dónde buscar tu feed releases.{channel}.json y los paquetes a los que hace referencia. Cuando pasas una URL o una ruta de archivo sin más al constructor de UpdateManager, Velopack elige por ti una fuente sencilla, pero también puedes construir una fuente de forma explícita para disponer de autenticación, versiones preliminares y comportamiento específico de cada proveedor.
// these two are equivalent
var mgr = new UpdateManager("https://the.place/you-host/updates");
var mgr = new UpdateManager(new SimpleWebSource("https://the.place/you-host/updates"));
Todas las fuentes integradas se encuentran en el espacio de nombres Velopack.Sources.
Fuentes integradas
SimpleWebSource
Lee el feed y los paquetes por HTTP(S) desde una ubicación estática (un servidor web, un bucket de S3, un contenedor de Azure Blob, etc.). Es la fuente que se usa al escribir new UpdateManager("https://...").
new SimpleWebSource("https://the.place/you-host/updates");
SimpleFileSource
Lee el feed y los paquetes desde un directorio local. Es la fuente que se usa al escribir new UpdateManager("C:\\path") (con cualquier ruta que no sea HTTP). Resulta útil para pruebas o para aplicaciones que se actualizan desde una unidad de red o USB.
new SimpleFileSource(new DirectoryInfo(@"C:\my-updates"));
GithubSource
Lee las versiones publicadas en la sección Releases de un repositorio de GitHub.
new GithubSource("https://github.com/yourName/yourRepo", accessToken: null, prerelease: false);
prerelease: si es true, también se tienen en cuenta las versiones preliminares (pre-releases) de GitHub.accessToken: obligatorio para repositorios privados. Sin token, se usan las URL de descarga públicas y quedas sujeto al límite de velocidad de GitHub para solicitudes no autenticadas, de 60 solicitudes por hora por IP. Si lo proporcionas, el token se envía en el encabezadoAuthorization: Bearer {token}.
GitlabSource
Lee las versiones de un repositorio de GitLab.
new GitlabSource("https://gitlab.com/yourName/yourRepo", accessToken: "...", upcomingRelease: false);
El token de acceso es obligatorio (es un parámetro que no admite null) y se envía en el encabezado PRIVATE-TOKEN.
GiteaSource
Lee las versiones de un repositorio de Gitea.
new GiteaSource("https://gitea.com/yourName/yourRepo", accessToken: null, prerelease: false);
Se comporta como GithubSource: los repositorios privados requieren un token, y el límite de velocidad para solicitudes no autenticadas es de 60 solicitudes por hora por IP. Si lo proporcionas, el token se envía en el encabezado Authorization: token {token}.
VelopackFlowSource
Lee las versiones del servicio alojado Velopack Flow.
new VelopackFlowSource(); // defaults to https://api.velopack.io/
Fuentes personalizadas
Si ninguna de las fuentes integradas se ajusta a tus necesidades (por ejemplo, si te autenticas con un esquema personalizado u obtienes el feed desde una API privada), puedes implementar tú mismo IUpdateSource y pasar tu implementación a UpdateManager.
Una nota sobre S3 y otros backends
No existe ningún S3Source (ni para Azure, etc.) en la biblioteca. La CLI vpk puede subir versiones a S3, Azure y otros servicios, pero esos backends sirven archivos estáticos normales, así que en el cliente se leen con SimpleWebSource (apuntando a la URL del bucket o contenedor). S3 es un concepto que solo existe en el lado del despliegue.