VEBuild.VcxprojGenerator 1.0.4

dotnet add package VEBuild.VcxprojGenerator --version 1.0.4
                    
NuGet\Install-Package VEBuild.VcxprojGenerator -Version 1.0.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="VEBuild.VcxprojGenerator" Version="1.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="VEBuild.VcxprojGenerator" Version="1.0.4" />
                    
Directory.Packages.props
<PackageReference Include="VEBuild.VcxprojGenerator" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add VEBuild.VcxprojGenerator --version 1.0.4
                    
#r "nuget: VEBuild.VcxprojGenerator, 1.0.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package VEBuild.VcxprojGenerator@1.0.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=VEBuild.VcxprojGenerator&version=1.0.4
                    
Install as a Cake Addin
#tool nuget:?package=VEBuild.VcxprojGenerator&version=1.0.4
                    
Install as a Cake Tool

ve.build.vcxprojgenerator

🚀 STATUS: v1.0.0 RC. Visual Studio Generator for VEBuild.

ve.build.vcxprojgenerator implements the IProjectGenerator interface to create Visual Studio 2022 project files (.vcxproj) and solutions (.sln).

It bridges the gap between the custom ve.build system and the Visual Studio IDE, providing a first-class development experience with full IntelliSense, Debugging, and C++20 Modules support.

📦 Features

1. NMake Project Generation

It generates Makefile Project configurations (.vcxproj) that delegate build commands back to ve.build:

  • Build Command: Calls ve.build build ...
  • Rebuild Command: Calls ve.build rebuild ...
  • Clean Command: Calls ve.build clean ...

2. IntelliSense & C++20 Modules

It employs advanced techniques to make VS IntelliSense work with custom build artifacts:

  • Forced Includes: Generates a header (ve_intellisense.h) to pass complex preprocessor definitions (like __declspec(dllexport)) that typically break NMake XML parsers.
  • Module Visibility: Automatically adds module interface files (.ixx) from dependent projects as links, ensuring cross-project code navigation (Go To Definition) works correctly.

3. Smart Solution Generation (.sln)

It generates a .sln file that intelligently combines your C++ projects with the C# build tool itself:

  • Hybrid Solution: Includes both the target C++ projects and the ve.build C# project.
  • Build Dependencies: Configures the Solution so that the C# build tool is compiled before the C++ projects. This ensures you always run the latest version of your build script.
  • Configuration Mapping: Maps solution configurations (e.g., DEBUG|windows-x64) to the correct C# configuration (Debug|Any CPU) and C++ configuration.

4. Debugger Integration

Automatically configures the Local Windows Debugger:

  • Sets the Command to the generated executable path.
  • Sets the WorkingDirectory to the project root.
  • Enables NativeOnly debugging for maximum performance.

💻 Usage

Register this generator in your HostBuilder.

using ve.build.core;
using ve.build.vcxprojgenerator; // Extension namespace

return await new HostBuilder()
    .project("my_game", ...)
    
    // Register the VS2022 Generator
    .useVcxprojGenerator() 
    
    .build()
    .run(args);

After registration, run the generate command:

dotnet run -- generateProjectFiles

This will produce:

  • MyGame.sln
  • obj/my_game.vcxproj
  • obj/my_game.vcxproj.filters

Open MyGame.sln in Visual Studio 2022, and you are ready to code, build (F7), and debug (F5).

🔧 Architecture

The generator operates in two phases:

  1. Project Generation (.vcxproj):

    • Iterates over all defined projects.
    • Resolves source files and dependencies.
    • Generates XML with <NMakeBuildCommandLine>, <ClCompile> includes, and <ProjectReference> to link dependencies for IntelliSense.
  2. Solution Generation (.sln):

    • Discovers the .csproj of the build tool itself.
    • Creates a Solution file linking the C# tool and C++ projects.
    • Sets up ProjectDependencies to enforce the build order: C# Tool -> C++ Libs -> C++ Exe.

License

© 2025 VassalStudio. All rights reserved.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on VEBuild.VcxprojGenerator:

Package Downloads
VEBuild.Msvc

VEBuild is a modular .NET build system that composes projects via declarative tasks, extensions, and platforms. This repo contains the core abstractions and a sandbox used to validate the architecture.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.4 110 5/29/2026
1.0.3.2 130 5/22/2026
1.0.3.1 105 5/22/2026
1.0.3 102 5/22/2026
1.0.2.2 112 3/6/2026
1.0.2.1 109 3/6/2026
1.0.2 114 3/3/2026
1.0.1.6-rc 113 3/2/2026
1.0.1.5-rc 112 2/26/2026
1.0.1.4-rc 122 2/25/2026
1.0.1.3-rc 110 2/17/2026
1.0.1.2-rc 105 2/17/2026
1.0.1.1-rc 122 12/27/2025
1.0.1-rc 104 12/27/2025
1.0.0.1-rc 191 12/25/2025
1.0.0-rc 194 11/27/2025