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 possible 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.

note

Bootstrapping dotnet is not available on macOS and Linux. It is recommended to distribute your application as a self-contained package instead.

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)
  • vcredist144-x86 (VC++ 14.4 / VS 2022)
  • vcredist144-x64 (VC++ 14.4 / VS 2022)
  • vcredist144-arm64 (VC++ 14.4 / 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
  • sdk

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
  • .NET 9.0 SDK (x64) --framework net9.0-x64-sdk

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 patch version.

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.