Skip to content

Development

fralorange edited this page Oct 14, 2026 · 1 revision

Development

This page describes how to set up the development environment, restore dependencies, build and debug Proxirae, and prepare release builds.

Getting Started

To build and run Proxirae from source, prepare the development environment and restore the required dependencies. The following sections describe the necessary tools and dependency setup before building the application.

Environment

Proxirae is developed using Visual Studio 2022. The solution contains C# projects, including a WPF desktop application, and a native C++ network engine.

Open Visual Studio Installer, select your Visual Studio 2022 installation, and ensure the following workloads are installed:

  • .NET desktop development — for the C# and WPF components.
  • Desktop development with C++ — for the native C++ network engine.

Dependencies

C++ dependencies

Proxirae uses Conan to manage C++ dependencies.

Run the following commands from the directory containing the Conan recipe:

conan install . -s arch=x86_64 -s build_type=Debug --build=missing
conan install . -s arch=x86 -s build_type=Debug --build=missing

conan install . -s arch=x86_64 -s build_type=Release --build=missing
conan install . -s arch=x86 -s build_type=Release --build=missing

These commands install the dependencies required for the specified architectures and build configurations. The --build=missing option allows Conan to build packages from source when a compatible binary package is unavailable.

.NET dependencies

NuGet packages are normally restored automatically by Visual Studio when building the solution, provided automatic package restore is enabled.

If you need to restore them manually, open a terminal in the solution directory and run:

dotnet restore Proxirae.sln

Build

Debugging

To run the application in Debug mode:

  1. Open the solution in Visual Studio 2022.
  2. Configure the solution to start both Proxirae.Network and Proxirae.Presentation.WPF.
  3. Start debugging with F5.

Both projects must run simultaneously for the current debugging workflow.

Conventions

Proxirae follows consistent naming conventions across its C# and C++ projects, with a few language- and directory-specific exceptions.

  • Class names — use PascalCase in both C# and C++.
  • C# files and directories — use PascalCase.
  • C++ directories — use camelCase, starting with a lowercase letter.
  • C++ files — generally use PascalCase. In parts of the codebase that follow traditional C-style naming, file names use kebab-case, such as the files under platform/environment.

Publishing

The release process consists of building the native C++ engine, publishing the WPF application, preparing the installer directory structure, and compiling the installer with Inno Setup.

1. Build the C++ Network Engine

Build Proxirae.Network in the Release configuration for both supported target architectures:

  • x64
  • Win32 (x86)

To switch the C++ project to Win32, open Build → Configuration Manager and change the project platform there. Do not rely only on the platform selector in the main Visual Studio toolbar.

The build output is placed in the corresponding x64 or Win32 directory.

2. Publish the WPF Application

Use the Publish action for Proxirae.Presentation.WPF to publish the application for the required Windows architecture.

The published WPF application files are placed in the x86 directory.

3. Prepare the Native Engine Files

The installer uses the native engine under the Core directory at the project root.

For the Win32 build, copy the contents of the Win32 output directory into Core. Preserve the directory structure so that it matches the structure used for the x64 version.

4. Compile the Installer

Open installer.iss in the project's installer directory.

Update the release version in the script, then compile it using Inno Setup.

If no changes other than the version number are required in installer.iss, the compiled installer will be generated in the installer directory.

5. Publish the Release

Publish the compiled installer from the installer directory as the release artifact.

Clone this wiki locally