Building from source - vrcx-team/VRCX GitHub Wiki

Windows

  • Get source code

    • Download latest source code zip or clone repo with git clone "https://github.com/vrcx-team/VRCX.git"
  • Build Node.js

    • Download and install "Windows Installer (.msi)" for Node.js LTS.
    • Browse to build-scripts\node folder and run these files in this order.
      • Restore node modules (only necessity for first build) restore-node-dependencies.cmd
      • Choose your build type (needs to match up with dotnet) Release/Debug: build-node-release.cmd/build-node-debug.cmd
      • In build-scripts open make-junction.cmd
    • These scripts will set up the Node.js environment and create necessary symbolic links for the build process.
  • Build .NET

Windows Extras

  • Run build outside of IDE

    • .\build\Cef\VRCX.exe
    • Release: Auto build script changes with npm run watch then reload with Ctrl + R
    • Debug: Hot-reload with npm run dev
  • Create release zip

    • Run build-scripts\make-zip.cmd for Bandizip or build-scripts\make-zip-7z.cmd for 7-Zip from the root of the project.
  • Create release setup

    • Run build-scripts\build-all.ps1 this will also runs all the steps above for you.

Linux

  • Get source code

    • Download latest source code zip or clone repo with git clone "https://github.com/vrcx-team/VRCX.git"
  • Build .NET

    • Install Dotnet 9.0 SDK
    • Build Dotnet
      • GUI: Open solution file (.sln) with Rider, restore NuGet packages and build project "VRCX-Electron".
      • CLI: Run dotnet build 'Dotnet/VRCX-Electron.csproj' -p:Configuration=Release -p:Platform=x64 -p:RestorePackagesConfig=true -t:"Restore;Clean;Build" -m --self-contained
  • Build Node.js

    • Install nodejs and npm
    • Restore node modules, only necessity for first build npm ci
    • Build main app npm run prod-linux or npm run watch-linux for auto build
    • Build electron, only necessity for first build npm run build-electron
    • Launch app npm run start-electron

macOS

  • ARM64 (Unofficial support by @i0ntempest)
    • Install .NET 9 x64 SDK, node and npm.
    • export DOTNET_ROOT=/usr/local/share/dotnet/x64
    • node src-electron/patch-package-version.js
    • /usr/local/share/dotnet/x64/dotnet build Dotnet/VRCX-Electron.csproj -c Release -a x64 -v detailed
    • npm install --arch=x64
    • npm run prod-linux --arch=x64
    • Change deployment target based on your OS version ./node_modules/.bin/electron-builder -c.mac.minimumSystemVersion=15.0 -c.mac.target=dir -c.mac.identity=null -c.mac.category=public.app-category.utilities --x64
    • Optionally sign the app bundle codesign --sign - --deep build/mac/VRCX.app/
  • x64
    • Install brew
    • brew install --cask dotnet-sdk
    • brew install node git
    • git clone "https://github.com/vrcx-team/VRCX.git"
    • cd VRCX
    • dotnet build Dotnet/VRCX-Electron.csproj -c Release
    • npm ci
    • npm run prod-linux
    • npm run build-electron
    • npm run start-electron or open ./VRCX/build folder for .app and .dmg files