VEBuild.ProjectGenerator
1.0.3
See the version list below for details.
dotnet add package VEBuild.ProjectGenerator --version 1.0.3
NuGet\Install-Package VEBuild.ProjectGenerator -Version 1.0.3
<PackageReference Include="VEBuild.ProjectGenerator" Version="1.0.3" />
<PackageVersion Include="VEBuild.ProjectGenerator" Version="1.0.3" />
<PackageReference Include="VEBuild.ProjectGenerator" />
paket add VEBuild.ProjectGenerator --version 1.0.3
#r "nuget: VEBuild.ProjectGenerator, 1.0.3"
#:package VEBuild.ProjectGenerator@1.0.3
#addin nuget:?package=VEBuild.ProjectGenerator&version=1.0.3
#tool nuget:?package=VEBuild.ProjectGenerator&version=1.0.3
ve.build.projectgenerator
🚀 STATUS: v1.0.0 RC. Project Generation Abstraction Layer for VEBuild.
ve.build.projectgenerator defines the interfaces and base logic for generating IDE (Integrated Development Environment) project files.
It acts as a factory and dispatcher: it allows you to register a specific generator (e.g., for Visual Studio) and automatically creates a standard generate task that iterates through all defined projects to create configuration files for them.
⚠️ Important
This package does not contain implementations for specific IDEs.
To generate .vcxproj or .sln files, you must install a corresponding implementation package alongside this one:
- Visual Studio: Install
ve.build.vcxprojgenerator - Others (VS Code, Makefiles): (In development)
📦 Installation
dotnet add package ve.build.projectgenerator
⚙️ Architecture
This package introduces the IProjectGenerator concept. This is the contract that must be implemented by any system wishing to export the ve.build configuration to an external format.
Interface
public interface IProjectGenerator
{
// Unique name of the generator (used in CLI: --generator=Name)
string Name { get; }
// Determines the output path for the project file based on project settings
string projectFile(IProjectBuilder projectBuilder);
// Main generation logic: writes content to the file
Task<ActionResult> generateProjectFiles(
IBuildContext ctx,
IProjectBuilder projectBuilder,
File[] files,
IEnumerable<IProjectBuilder> dependencies
);
// Hooks for additional setup (e.g., Solution generation)
void setupProject(string file);
void finalStep(ITaskBuilder taskBuilder);
}
💻 Usage
Typically, you do not use this package directly but rather reference a specific implementation (e.g., useVcxprojGenerator()).
However, if you are writing your own generator (e.g., for CLion or Makefile), you can use this package as a base.
Example: Registering a Custom Generator
using ve.build.core;
using ve.build.core.projects;
using ve.build.core.tasks;
using ve.build.projectgenerator;
using File = ve.build.core.files.File;
// 1. Implement the interface
class MyCustomGenerator : IProjectGenerator
{
public string Name => "MyGen";
public string projectFile(IProjectBuilder projectBuilder)
{
// Define where the project file will be created
return Path.Combine(projectBuilder.IntermediateDir, $"{projectBuilder.Name}.myproj");
}
public async Task<ActionResult> generateProjectFiles(IBuildContext ctx, IProjectBuilder projectBuilder, File[] files, IEnumerable<IProjectBuilder> dependencies)
{
// Write your generation logic here
// ...
return ActionResult.SUCCESS;
}
public void setupProject(string file) { /* Optional hook */ }
public void finalStep(ITaskBuilder taskBuilder)
{
// Optional hook to add solution generation tasks or post-processing
}
}
// 2. Register in HostBuilder
return await new HostBuilder()
.project("my_app", ...)
// Register your generator instance
.setupProjectGenerator(new MyCustomGenerator())
.build()
.run(args);
🛠️ CLI Command
Once this package (and an implementation) is registered, a new command becomes available in your CLI:
# Runs the generation process for all projects
dotnet run -- generateProjectFiles
License
© 2025 VassalStudio. All rights reserved.
| Product | Versions 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. |
-
net10.0
- VEBuild.Core (>= 1.0.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on VEBuild.ProjectGenerator:
| Package | Downloads |
|---|---|
|
VEBuild.VcxprojGenerator
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 | 113 | 5/29/2026 |
| 1.0.3.2 | 140 | 5/22/2026 |
| 1.0.3.1 | 109 | 5/22/2026 |
| 1.0.3 | 115 | 5/22/2026 |
| 1.0.2.2 | 119 | 3/6/2026 |
| 1.0.2.1 | 111 | 3/6/2026 |
| 1.0.2 | 124 | 3/3/2026 |
| 1.0.1.3-rc | 118 | 3/2/2026 |
| 1.0.1.2-rc | 147 | 2/25/2026 |
| 1.0.1.1-rc | 135 | 2/17/2026 |
| 1.0.1-rc | 127 | 12/27/2025 |
| 1.0.0.3-rc | 106 | 12/27/2025 |
| 1.0.0.2-rc | 103 | 12/27/2025 |
| 1.0.0.1-rc | 202 | 12/25/2025 |
| 1.0.0-rc | 208 | 11/27/2025 |