Add build instructions to readme

This commit is contained in:
caesay
2024-01-01 11:05:22 +00:00
parent 90fb5cd38d
commit 716d7d93d9
2 changed files with 44 additions and 1 deletions

View File

@@ -5,3 +5,45 @@
[![License](https://img.shields.io/github/license/velopack/velopack?style=flat-square)](https://github.com/velopack/velopack/blob/develop/LICENSE) [![License](https://img.shields.io/github/license/velopack/velopack?style=flat-square)](https://github.com/velopack/velopack/blob/develop/LICENSE)
# Velopack # Velopack
# Compiling
Velopack is made up of some Rust binaries which are re-distributed with installed apps, a .NET NuGet package, and a .NET command line tool. In order to test the project, you need to build the Rust binaries before compiling dotnet.
### Prerequisites
- [.NET 6 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)
- [.NET 8 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)
- [Rust / Cargo](https://www.rust-lang.org/tools/install)
- `dotnet tool install -g dotnet-coverage`
- `dotnet tool install -g nbgv`
### Debug / Test
On windows, you need to build the Rust binaries using the `windows` feature before running tests. On OSX, you should run `cargo build` instead.
```shell
git clone https://github.com/velopack/velopack.git
cd velopack/src/Rust
cargo build --features windows
cd ../../
dotnet build
dotnet test --no-build
```
### Release / Build
This is slightly complicated, because you will need to compile Rust on x64 OSX and x64 Windows before creating the final packages.
On OSX:
```shell
git clone https://github.com/velopack/velopack.git
cd velopack/src/Rust
cargo build --release
```
On Windows:
```shell
git clone https://github.com/velopack/velopack.git
cd velopack/src/Rust
cargo build --release --features windows
copy {path_to_osx_update} target/release/updatemac
dotnet build -c Release /p:PackRustAssets=true
```

View File

@@ -14,6 +14,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionLevel", "SolutionLe
src\Directory.Build.props = src\Directory.Build.props src\Directory.Build.props = src\Directory.Build.props
Velopack.entitlements = Velopack.entitlements Velopack.entitlements = Velopack.entitlements
version.json = version.json version.json = version.json
README.md = README.md
EndProjectSection EndProjectSection
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack.Packaging", "src\Velopack.Packaging\Velopack.Packaging.csproj", "{352C15EA-622F-4132-80D8-9B6E3C83404E}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Velopack.Packaging", "src\Velopack.Packaging\Velopack.Packaging.csproj", "{352C15EA-622F-4132-80D8-9B6E3C83404E}"