[WIP] Target .net9 and update dependencies
.NET 9 Target Framework and Dependency Update - COMPLETED ✅
- [x] Explore repository structure and understand current state
- [x] Verify current build works with .NET 8
- [x] Install .NET 9 SDK for testing
- [x] Update target frameworks to .NET 9
- [x] Update tbc.host from net8.0 to net9.0
- [x] Update tbc.host.console from net8.0 to net9.0
- [x] Update TestSocketTarget from net8.0 to net9.0
- [x] Add net9.0 to tbc.core and tbc.target multi-targeting (keeping net472 and netstandard2.1 for compatibility)
- [x] Update package dependencies to latest stable versions
- [x] Update Microsoft.CodeAnalysis.CSharp.Workspaces from 4.11.0 to 4.14.0
- [x] Update Microsoft.Extensions.Logging.Console from 8.0.1 to 9.0.6
- [x] Update Microsoft.Extensions.DependencyInjection from 8.0.1 to 9.0.6
- [x] Update System.IO.Abstractions from 21.0.29 to 22.0.14
- [x] Update System.Linq.Async from 6.0.1 to 6.0.3
- [x] Update System.Text.Json from 8.0.5 to 9.0.6
- [x] Update Polly from 8.4.2 to 8.6.1
- [x] Update NuGet.Configuration from 6.11.1 to 6.14.0
- [x] Update IgnoresAccessChecksToGenerator from 0.7.0 to 0.8.0
- [x] Update build scripts
- [x] Update build.sh to use net9.0 instead of net7.0
- [x] Update run-host.sh to use net9.0 instead of net6.0
- [x] Fix .NET 9 compatibility issues
- [x] Resolve GetValueOrDefault extension method conflicts by using conditional compilation
- [x] Test and validate changes
- [x] Verify solution builds successfully with .NET 9
- [x] Verify packages can be created
- [x] Verify console application runs correctly
- [x] FINAL TEST: Complete build script execution successful
- [x] Cross-platform publishing to win-x64, osx-x64, osx-arm64 completed
- [x] All NuGet packages generated successfully
- [x] .NET tool package created successfully
Summary
✅ Successfully updated tbc repository to target .NET 9
The upgrade is complete and fully functional:
Framework Updates:
- Main projects (tbc.host, tbc.host.console, TestSocketTarget) now target .NET 9
- Library projects (tbc.core, tbc.target) now multi-target net9.0, netstandard2.1, and net472 for maximum compatibility
Dependency Updates:
- All dependencies updated to latest stable versions compatible with .NET 9
- Resolved compatibility issues with GetValueOrDefault extension method
Build System:
- Build scripts updated to use .NET 9
- Cross-platform publishing verified for Windows, macOS x64, and macOS ARM64
- All package creation workflows verified and working
Validation:
- Full solution builds successfully with .NET 9
- Console application runs correctly
- All packages can be created and published
- Complete build script execution verified
The tbc project is now fully upgraded to .NET 9 with all latest stable dependencies while maintaining backward compatibility where needed.
Fixes #11.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.
Don't commit binaries or packages as part of your work Undo adding net9 target framework to projects that don't need it (those that target netstandard) Make sure that build.yml installs net9 so that it can build
Don't commit binaries or packages as part of your work Undo adding net9 target framework to projects that don't need it (those that target netstandard) Make sure that build.yml installs net9 so that...
Addressed the feedback in commit 93c5c75:
- Removed committed package file (tbc.console.1.0.0.nupkg) and updated .gitignore to exclude output/ directory
- Reverted tbc.core and tbc.target projects to only target netstandard2.1;net472 (removed net9.0 target since netstandard projects don't need explicit .NET 9 targets)
- Updated build.yml to install .NET 9.0.100 instead of .NET 8.0.100
The solution still builds successfully with .NET 9, with the main application projects (tbc.host, tbc.host.console, TestSocketTarget) targeting .NET 9 while the library projects maintain netstandard compatibility.