JD.MSBuild.Fluent
0.1.0
See the version list below for details.
dotnet add package JD.MSBuild.Fluent --version 0.1.0
NuGet\Install-Package JD.MSBuild.Fluent -Version 0.1.0
<PackageReference Include="JD.MSBuild.Fluent" Version="0.1.0" />
<PackageVersion Include="JD.MSBuild.Fluent" Version="0.1.0" />
<PackageReference Include="JD.MSBuild.Fluent" />
paket add JD.MSBuild.Fluent --version 0.1.0
#r "nuget: JD.MSBuild.Fluent, 0.1.0"
#:package JD.MSBuild.Fluent@0.1.0
#addin nuget:?package=JD.MSBuild.Fluent&version=0.1.0
#tool nuget:?package=JD.MSBuild.Fluent&version=0.1.0
JD.MSBuild.Fluent
A strongly-typed, fluent DSL for authoring MSBuild .props, .targets, and SDK assets, then emitting them into the exact NuGet folder layout (build/, buildTransitive/, Sdk/<id>/...).
The goal is to make authoring MSBuild packages feel like writing normal C# - DRY, SOLID, refactorable - while still producing 100% standard MSBuild XML.
Documentation
- Docs site sources live in
docs/(DocFX). - API reference is generated from XML documentation comments.
Quick start
Author a definition
using JD.MSBuild.Fluent;
using JD.MSBuild.Fluent.Fluent;
namespace MySdk;
public static class Factory
{
public static PackageDefinition Create() => Package.Define("MySdk")
.Props(p => p
.Property("MySdkEnabled", "true"))
.Targets(t => t
.Target("MySdk_Hello", target => target
.BeforeTargets("Build")
.Condition("'$(MySdkEnabled)' == 'true'")
.Message("Hello from MySdk")))
.Pack(o => { o.BuildTransitive = true; o.EmitSdk = true; })
.Build();
}
Generate assets
- Build the project containing your factory (
Factory.Create) to produce an assembly. - Run:
jdmsbuild generate --assembly path/to/MySdk.dll --type MySdk.Factory --method Create --output artifacts/msbuild
Or generate the built-in example:
jdmsbuild generate --example --output artifacts/msbuild
Samples
samples/MinimalSdkPackagecontains a minimal, end-to-end definition and output.
Output layout
build/<id>.propsbuild/<id>.targets- (optional)
buildTransitive/... - (optional)
Sdk/<id>/Sdk.props - (optional)
Sdk/<id>/Sdk.targets
Determinism
The renderer canonicalizes common sources of MSBuild churn (property ordering, item metadata ordering, task parameter ordering) so that diffs remain meaningful.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.10 | 30 | 1/20/2026 |
| 1.3.9 | 139 | 1/20/2026 |
| 1.3.8 | 70 | 1/20/2026 |
| 1.3.7 | 101 | 1/20/2026 |
| 1.3.6 | 67 | 1/20/2026 |
| 1.3.5 | 70 | 1/20/2026 |
| 1.3.4 | 119 | 1/19/2026 |
| 1.3.3 | 73 | 1/18/2026 |
| 1.3.2 | 78 | 1/18/2026 |
| 1.3.1 | 80 | 1/18/2026 |
| 1.3.0 | 76 | 1/18/2026 |
| 1.2.3 | 73 | 1/18/2026 |
| 1.2.2 | 75 | 1/18/2026 |
| 1.2.1 | 78 | 1/18/2026 |
| 1.2.0 | 78 | 1/18/2026 |
| 1.1.2 | 77 | 1/18/2026 |
| 1.1.1 | 73 | 1/18/2026 |
| 1.1.0 | 93 | 1/18/2026 |
| 1.0.2 | 108 | 1/18/2026 |
| 1.0.1 | 80 | 1/18/2026 |
| 1.0.0 | 78 | 1/18/2026 |
| 0.2.0 | 83 | 1/18/2026 |
| 0.1.1 | 80 | 1/17/2026 |
| 0.1.0 | 80 | 1/17/2026 |