Primeros pasos: aplicación de consola .NET / aplicación genérica de C#
Comienza con .NET 5+ (multiplataforma) o .NET Framework.
Instala el paquete NuGet de Velopack en tu proyecto principal. Este es el proyecto que contendrá el método Main de tu aplicación.
- Generic C#
- WPF
- Uno Platform
Velopack necesita poder iniciar tu aplicación y gestionar las actualizaciones. Puedes hacer esto llamando a VelopackApp.Build().Run() al inicio de tu método Main.
static void Main(string[] args)
{
VelopackApp.Build().Run();
// ... your other startup code below
}
Aunque es posible simplemente colocar la llamada de arranque de Velopack dentro de App.xaml.cs, recomendamos crear un método Main personalizado para evitar cualquier sobrecarga de WPF al aplicar actualizaciones.
Primero, cambia la Build Action de App.xaml a Page (haz clic derecho en el archivo en el Explorador de soluciones, selecciona Propiedades y cambia la Build Action).
El archivo de proyecto debe contener las siguientes líneas:
<ItemGroup>
<ApplicationDefinition Remove="App.xaml"/>
<Page Include="App.xaml"/>
</ItemGroup>
Mientras editas el archivo de proyecto, cambia el StartupObject para que apunte a tu clase App.
Agrega el siguiente PropertyGroup a tu archivo .csproj:
<PropertyGroup>
<StartupObject>YourNamespace.App</StartupObject>
</PropertyGroup>
Agrega un método Main a tu archivo App.xaml.cs. Debería verse similar a esto:
public partial class App : Application
{
[STAThread]
private static void Main(string[] args)
{
VelopackApp.Build().Run();
App app = new();
app.InitializeComponent();
app.Run();
}
// The rest of your App.xaml.cs code goes here
}
Verifica los cambios asegurándote de que tu aplicación siga iniciándose correctamente.
Agrega el siguiente código a tu archivo App.xaml.cs:
public App()
{
// It's important to Run() the VelopackApp as early as possible in app startup.
VelopackApp.Build()
.OnFirstRun((v) => { /* Your first run code here */ })
.Run();
this.InitializeComponent();
}
Velopack ofrece una forma sencilla de comprobar si hay actualizaciones y aplicarlas. A continuación se muestra cómo implementar una comprobación básica de actualizaciones dentro de tu aplicación.
También puedes separar los distintos métodos para permitir que tus usuarios controlen cuándo comprobar si hay actualizaciones, descargarlas o aplicarlas.
private static async Task UpdateMyApp()
{
var mgr = new UpdateManager("https://the.place/you-host/updates");
// check for new version
var newVersion = await mgr.CheckForUpdatesAsync();
if (newVersion == null)
return; // no update available
// download new version
await mgr.DownloadUpdatesAsync(newVersion);
// install new version and restart app
mgr.ApplyUpdatesAndRestart(newVersion);
}
- Generic C#
- WPF
- Uno Platform
Antes de compilar una versión de Velopack, primero debes compilar tu aplicación y publicarla en un directorio.
Para mayor simplicidad, recomendamos publicarla como una aplicación autocontenida.
dotnet publish yourApp.csproj -c Release --self-contained -r win-x64 -o .\publish
Reemplaza -r win-x64 con el identificador de tiempo de ejecución (RID) para tu plataforma de destino, como osx-arm64 o linux-x64.
A partir de .NET 7, la opción -o/--output ya no puede usarse con un archivo de solución.
A partir de .NET 8 y versiones posteriores, el comando dotnet publish usa por defecto la configuración Release, por lo que puedes omitir la opción -c Release.
Para más detalles consulta https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/8.0/dotnet-publish-config.
Si ejecutas el comando dotnet publish desde el mismo directorio que el archivo .csproj, puedes omitir el argumento del proyecto. Puedes encontrar más detalles en la documentación de dotnet publish.
Antes de compilar una versión de Velopack, primero debes compilar tu aplicación y publicarla en un directorio.
Para mayor simplicidad, recomendamos publicarla como una aplicación autocontenida.
dotnet publish yourApp.csproj -c Release --self-contained -r win-x64 -o .\publish
Reemplaza -r win-x64 con el identificador de tiempo de ejecución (RID) para tu plataforma de destino, como osx-arm64 o linux-x64.
A partir de .NET 7, la opción -o/--output ya no puede usarse con un archivo de solución.
A partir de .NET 8 y versiones posteriores, el comando dotnet publish usa por defecto la configuración Release, por lo que puedes omitir la opción -c Release.
Para más detalles consulta https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/8.0/dotnet-publish-config.
Si ejecutas el comando dotnet publish desde el mismo directorio que el archivo .csproj, puedes omitir el argumento del proyecto. Puedes encontrar más detalles en la documentación de dotnet publish.
Antes de compilar una versión de Velopack, primero debes compilar tu aplicación y publicarla en un directorio.
dotnet publish -f net8.0-desktop -p:Version=1.0.0 -o .\publish
Esto creará los artefactos que se instalarán dentro del directorio publish. Si estás apuntando a múltiples plataformas, este proceso deberá repetirse para cada una de ellas reemplazando la opción -f con el moniker de marco de destino (TFM) apropiado para cada plataforma, como net8.0-windows o net8.0-maccatalyst.
For additional information on publishing your Uno application see the Uno publishing guides
A partir de .NET 7, la opción -o/--output ya no puede usarse con un archivo de solución.
A partir de .NET 8 y versiones posteriores, el comando dotnet publish usa por defecto la configuración Release, por lo que puedes omitir la opción -c Release.
Para más detalles consulta https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/8.0/dotnet-publish-config.
Si ejecutas el comando dotnet publish desde el mismo directorio que el archivo .csproj, puedes omitir el argumento del proyecto. Puedes encontrar más detalles en la documentación de dotnet publish.
Velopack usa una herramienta de línea de comandos llamada vpk para empaquetar y publicar versiones.
Se distribuye como una herramienta global de .NET. Aunque Velopack puede usarse con aplicaciones escritas en varios lenguajes, se requiere el SDK de .NET para instalar y ejecutar vpk.
Puedes instalar el SDK de .NET desde la página de descarga de .NET.
Una vez instalado .NET, puedes instalar vpk ejecutando:
dotnet tool install -g vpk
Se recomienda usar la misma versión de vpk que el paquete Velopack referenciado en tu aplicación para garantizar la compatibilidad.
Alternativamente, puedes ejecutar vpk sin instalarlo globalmente usando el comando dnx. Usa la sintaxis @<version> para fijar la versión de la herramienta vpk:
dnx vpk@1.0.0
Reemplaza 1.0.0 con la versión del paquete Velopack que estás usando en tu aplicación.
- Generic C#
- WPF
- Uno Platform
Ahora estás listo para crear una versión de Velopack para tu aplicación.
El --packId puede ser cualquier identificador de aplicación único que desees utilizar. Dado que debe ser único entre todas las aplicaciones, recomendamos incluir el nombre de tu empresa: <CompanyName>.<AppName>.
La opción --mainExe solo es necesaria si el nombre de tu ejecutable es diferente al --packId de tu aplicación.
Consulta la referencia de CLI para obtener más detalles sobre las opciones disponibles.
vpk pack --packId YourAppId --packVersion 1.0.0 --packDir .\publish --mainExe yourMainApp.exe
Ahora estás listo para crear una versión de Velopack para tu aplicación.
El --packId puede ser cualquier identificador de aplicación único que desees utilizar. Dado que debe ser único entre todas las aplicaciones, recomendamos incluir el nombre de tu empresa: <CompanyName>.<AppName>.
La opción --mainExe solo es necesaria si el nombre de tu ejecutable es diferente al --packId de tu aplicación.
Consulta la referencia de CLI para obtener más detalles sobre las opciones disponibles.
vpk pack --packId YourAppId --packVersion 1.0.0 --packDir .\publish --mainExe yourMainApp.exe
Ahora estás listo para crear una versión de Velopack para tu aplicación.
El --packId puede ser cualquier identificador de aplicación único que desees utilizar. Dado que debe ser único entre todas las aplicaciones, recomendamos incluir el nombre de tu empresa: <CompanyName>.<AppName>.
La opción --mainExe solo es necesaria si el nombre de tu ejecutable es diferente al --packId de tu aplicación.
Consulta la referencia de CLI para obtener más detalles sobre las opciones disponibles.
vpk pack --packId YourAppId --packVersion 1.0.0 --packDir .\publish --mainExe yourMainApp.exe
vpk producirá una advertencia indicando que VelopackApp.Run() no se encontró en el punto de entrada de tu aplicación. Esto es esperado y la advertencia puede ignorarse con seguridad para este tipo de aplicación.✅ ¡Listo! Tu aplicación ahora tiene actualizaciones automáticas y un instalador.
Puedes subir tu release a tu sitio web, o usar el comando vpk upload para publicarla en el destino que elijas.
También puedes consultar nuestras Aplicaciones de ejemplo para ver ejemplos completos que usan Velopack.