Summary
cli-sidecar targets net9.0 while the standalone CAD-host CLIs that can track the
latest runtime (cli-rhino, cli-sketchup) are on net10.0-windows. Since
cli-sidecar is an out-of-process tool (reflection/extraction, NativeAOT — it does not
load into any CAD host), it can move to net10 for consistency.
Correction to the original report: cli-revit (net8) and cli-tekla (net48) are
correctly pinned and must not be bumped — see below.
Target frameworks
| Project |
TargetFramework |
Bump to net10? |
cli-rhino/cli-rhino.csproj |
net10.0-windows |
already net10 |
cli-sketchup/cli-sketchup.csproj |
net10.0-windows |
already net10 |
cli-sidecar/cli-sidecar.csproj |
net9.0 |
yes — standalone tool, not host-bound |
cli-sidecar/Tests/*, Ingest/Generator/Tests/*, FixtureAssembly |
net9.0 |
yes (with the above) |
cli-revit/Sidecar/cli-revit.csproj |
net8.0-windows |
no — pinned |
cli-revit/AwareRevit/AwareRevit.csproj |
net8.0-windows |
no — pinned |
cli-revit/Shared/Shared.csproj |
net8.0 |
no — keep aligned with Revit |
cli-tekla/cli-tekla.csproj |
net48 |
no — pinned |
Why cli-revit and cli-tekla are pinned (not lagging)
These talk to the CAD host directly through its API, in-process, so they are bound to
the host application's runtime:
- Tekla Open API assemblies target .NET Framework 4.8 IL →
cli-tekla must be net48.
- Revit 2025+ runs on .NET 8 →
cli-revit (and its in-process AwareRevit
plugin + Shared) must be net8.
Bumping either would break in-process loading against the host. The only project free to
track the latest runtime is the out-of-process cli-sidecar.
Recommendation
- Bump
cli-sidecar (+ its test/fixture/generator projects) net9.0 → net10.0.
- Leave
cli-tekla (net48) and cli-revit (net8) as-is.
Notes
Found while standing up a downstream app (tekla-plugin-generator) that mirrors
aware-aeco conventions. Original version of this issue incorrectly listed cli-revit as
lagging; corrected here.
Summary
cli-sidecartargets net9.0 while the standalone CAD-host CLIs that can track thelatest runtime (
cli-rhino,cli-sketchup) are on net10.0-windows. Sincecli-sidecaris an out-of-process tool (reflection/extraction, NativeAOT — it does notload into any CAD host), it can move to net10 for consistency.
Correction to the original report:
cli-revit(net8) andcli-tekla(net48) arecorrectly pinned and must not be bumped — see below.
Target frameworks
cli-rhino/cli-rhino.csprojnet10.0-windowscli-sketchup/cli-sketchup.csprojnet10.0-windowscli-sidecar/cli-sidecar.csprojnet9.0cli-sidecar/Tests/*,Ingest/Generator/Tests/*,FixtureAssemblynet9.0cli-revit/Sidecar/cli-revit.csprojnet8.0-windowscli-revit/AwareRevit/AwareRevit.csprojnet8.0-windowscli-revit/Shared/Shared.csprojnet8.0cli-tekla/cli-tekla.csprojnet48Why cli-revit and cli-tekla are pinned (not lagging)
These talk to the CAD host directly through its API, in-process, so they are bound to
the host application's runtime:
cli-teklamust benet48.cli-revit(and its in-processAwareRevitplugin +
Shared) must benet8.Bumping either would break in-process loading against the host. The only project free to
track the latest runtime is the out-of-process
cli-sidecar.Recommendation
cli-sidecar(+ its test/fixture/generator projects)net9.0→net10.0.cli-tekla(net48) andcli-revit(net8) as-is.Notes
Found while standing up a downstream app (
tekla-plugin-generator) that mirrorsaware-aeco conventions. Original version of this issue incorrectly listed cli-revit as
lagging; corrected here.