Skip to content

Multi-target library for net6.0, net8.0, net9.0, and net10.0#4

Open
andyalm wants to merge 8 commits intomainfrom
claude/multi-target-dotnet-A6oO0
Open

Multi-target library for net6.0, net8.0, net9.0, and net10.0#4
andyalm wants to merge 8 commits intomainfrom
claude/multi-target-dotnet-A6oO0

Conversation

@andyalm
Copy link
Owner

@andyalm andyalm commented Feb 26, 2026

  • Update MountAnything and MountAnything.Hosting.Abstractions NuGet
    packages to produce binaries for all four TFMs
  • Update MountAnything.Hosting.Build.targets to pass TargetFramework
    to the inner Host project build and use it in output paths instead
    of the previously hardcoded net6.0
  • Multi-target tests and example project
  • Update CI and Publish workflows to install .NET 6/8/9/10 SDKs and
    bump actions/checkout and actions/setup-dotnet to v4

https://claude.ai/code/session_01HeNhhSDXi7aCwMrH9sLkrD

claude and others added 8 commits February 26, 2026 03:18
- Update MountAnything and MountAnything.Hosting.Abstractions NuGet
  packages to produce binaries for all four TFMs
- Update MountAnything.Hosting.Build.targets to pass TargetFramework
  to the inner Host project build and use it in output paths instead
  of the previously hardcoded net6.0
- Multi-target tests and example project
- Update CI and Publish workflows to install .NET 6/8/9/10 SDKs and
  bump actions/checkout and actions/setup-dotnet to v4

https://claude.ai/code/session_01HeNhhSDXi7aCwMrH9sLkrD
- Add PowerShell installation to the session start hook so the
  MountPowershell example can build in Claude Code on the web
- Fix FirstTypeNameIsOnlyTypeOnFinalPSObject test that was not
  updated after the intentional breaking change in 19936ed which
  changed the default TypeName to use the class name instead of
  the underlying PSObject's first type name

https://claude.ai/code/session_01HeNhhSDXi7aCwMrH9sLkrD
…atch

When using TargetFrameworks (plural), MSBuild runs an outer build that
dispatches to per-TFM inner builds. The BuildHost and PublishModule targets
need Condition="'$(TargetFramework)' != ''" to skip the outer build where
TargetFramework is empty. Also add RestoreRecursive=false to prevent the
nested host project restore from overwriting the Hosting.Abstractions
multi-TFM project.assets.json with a single-TFM version.

https://claude.ai/code/session_01HeNhhSDXi7aCwMrH9sLkrD
…rnings

Use TFM-appropriate PowerShell SDK versions instead of a single 7.2.0
for all targets. The old 7.2.0 transitively pulls in
Microsoft.Management.Infrastructure.Runtime.Win which uses deprecated
version-specific RIDs (win7-x64, win8-x86, etc.) that trigger
NETSDK1206 warnings on net8.0+.

- net6.0: System.Management.Automation 7.2.24 (PowerShell 7.2)
- net8.0: System.Management.Automation 7.4.13 (PowerShell 7.4)
- net9.0/net10.0: System.Management.Automation 7.5.4 (PowerShell 7.5)

https://claude.ai/code/session_01HeNhhSDXi7aCwMrH9sLkrD
Upgrade Microsoft.Build.Tasks.Core and Microsoft.Build.Utilities.Core
from 17.1.0 to 17.8.43 to resolve:
- GHSA-h4j7-5rxr-p4wc (CVE-2025-26646, spoofing via DownloadFile task)
- GHSA-w3q9-fxm7-j8fq (CVE-2025-55247, DoS via predictable temp paths)

https://claude.ai/code/session_01HeNhhSDXi7aCwMrH9sLkrD
Update IProviderImpl, ProviderImpl, and the Provider template to use
nullable annotations matching the PowerShell SDK interfaces:
- GetProperty/GetPropertyDynamicParameters: Collection<string>? parameter
- NewProperty/NewPropertyDynamicParameters: object? value parameter
- RemovePropertyDynamicParameters: non-nullable object return type

Eliminates all CS8766/CS8767 nullability warnings (25 warnings across
all TFMs).

https://claude.ai/code/session_01HeNhhSDXi7aCwMrH9sLkrD
Restructure the README as a concise entry point with links to detailed
documentation pages. Create 8 docs pages covering:
- Getting Started guide using the in-repo example project
- Routing (all Map variants, route hierarchy, regex composition)
- Path Handlers (required/optional methods, context, constructor injection)
- Items (Item<T>, Item, IItem, custom properties, links, aliases)
- Caching (freshness strategies, partial items, cache control)
- Dependency Injection (Autofac, TypedString, ancestor items)
- Handler Interfaces (write operations, content read/write, dynamic params)
- Advanced Topics (ItemPath, LinkGenerator, ItemNavigator, assembly isolation)

https://claude.ai/code/session_01HeNhhSDXi7aCwMrH9sLkrD
…cy usage, refine item property examples, and update target framework to net8.0.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants