Skip to main content

Bootstrapping

Applies to
Windows
MacOS
Linux

Install .NET, vcredist, webview2, and more while installing Velopack applications on Windows using the --framework / -f argument.

It is possibly to specify more than one requirement, using a comma delimited list. For example:

vpk pack ... --framework net6.0-x64-desktop,vcredist142-x64

These dependencies will be downloaded and installed before your application will be installed.

warning

If you are building a dotnet application with --self-contained, you should NOT provide a --framework argument specifying that your app requires dotnet installed, because your application already has the runtime bundled in. If you are publishing your application with --no-self-contained, then you should provide the --framework argument.

Adding dependencies during updates

Velopack will check that all required dependencies are installed before applying new updates. This means if a new version of your app adds a new dependency, the user will be prompted to install it before your new version is applied.

List of supported frameworks

Any of the following can be passed via the --framework argument.

Edge WebView2

  • webview2

vcredist

  • vcredist100-x86 (VC++ 10.0 / VS 2010)
  • vcredist100-x64 (VC++ 10.0 / VS 2010)
  • vcredist110-x86 (VC++ 11.0 / VS 2012)
  • vcredist110-x64 (VC++ 11.0 / VS 2012)
  • vcredist120-x86 (VC++ 12.0 / VS 2013)
  • vcredist120-x64 (VC++ 12.0 / VS 2013)
  • vcredist140-x86 (VC++ 14.0 / VS 2015)
  • vcredist140-x64 (VC++ 14.0 / VS 2015)
  • vcredist141-x86 (VC++ 14.1 / VS 2017)
  • vcredist141-x64 (VC++ 14.1 / VS 2017)
  • vcredist142-x86 (VC++ 14.2 / VS 2019)
  • vcredist142-x64 (VC++ 14.2 / VS 2019)
  • vcredist143-x86 (VC++ 14.3 / VS 2022)
  • vcredist143-x64 (VC++ 14.3 / VS 2022)
  • vcredist143-arm64 (VC++ 14.3 / VS 2022)

.Net Framework

  • net45
  • net451
  • net452
  • net46
  • net461
  • net462
  • net47
  • net471
  • net472
  • net48
  • net481

dotnet

Every version of dotnet is supported >= 5.0. The framework argument should be supplied in the format $"net{major.minor}-{arch}-{type}".

The valid {arch} values are

  • x86
  • x64
  • arm64

The valid {type} values are

  • runtime
  • aspnetcore
  • desktop

Here are some examples:

  • .NET 6.0 Desktop Runtime (x64) --framework net6.0-x64-desktop
  • .NET 8.0 Runtime (arm64) --framework net8.0-arm64-runtime
  • .NET 5.0 AspNetCore (x86) --framework net5.0-x86-aspnetcore

By default, Velopack will accept any installed release, but always install the latest. That is to say, if your dependency is specified as net6.0-x64-desktop and version 6.0.2 is installed, it will be accepted. If it's not installed, Velopack will download the latest available version (at the time of writing, that's 6.0.26).

If you need a specific version of dotnet, (eg. 6.0.11) - you can specify a third version part in your dependency string: --framework net6.0.11-x64-desktop. In this case, if the installed version is < 6.0.11, then it will be upgraded to the latest available.