.NET ("dotnet")
.NET is a free and open-source, managed computer software framework. It is a cross-platform successor to .NET Framework and released under the MIT License.
Native FreeBSD .NET binary releases are available, with additional work taking place in third-party repositories to resolve issues, produce and test Native and Linux Emulated FreeBSD .NET binaries with the goal to merge FreeBSD .NET Support upstream.
.NET on FreeBSD
Goals
Reliably produce FreeBSD .NET binaries on an ongoing basis, and fix blocking issues and report/resolve upstream. Status:In-Progress
Assist upstream getting native FreeBSD .NET built, tested (CI) and binary packages produced on an on-going and official basis. Status: In-Progress
Create FreeBSD Ports from source (natively) for all .NET components and produce official packages for supported architectures. Status: Not Started
Upstream FreeBSD .NET Support
dotnet/source-build: GitHub Issue #1139: Building the .NET Core SDK on FreeBSD
dotnet/runtime: GitHub Issue 71338: Support for FreeBSD arm64
Get Involved!
Developers and users can help in the following ways:
Test .NET FreeBSD Binary Releases on your systems, provide feedback and report bugs to maintainers.
Test building .NET FreeBSD Binaries yourself, provide feedback and report bugs to maintainers.
Work with and help upstream to resolve issues to get native builds running and tested continuously.
Create a proof of concept FreeBSD Port that builds .NET from source using an existing bootstrap cli binary
Building .NET on FreeBSD
This section documents maintained efforts to progress .NET FreeBSD support. Developers and users are encouraged to test and provide feedback on these releases, report bugs, and provide improvements to the builds.
Notably, building .NET requires an existing and working dotnet cli SDK to bootstrap the build, as mentioned in the Workflow Guide: FreeBSD Requirements documentation below.
Producing this binary natively for FreeBSD is the aim of upstream issue #1139 mentioned above.
Until native bootstrap .net cli is available officially from upstream, FreeBSD .NET builds can be produced using either:
- Cross-build under Linux Emulation
- Natively, using dotnet cli binary built on FreeBSD under Linux Emulation.
Upstream Documentation
github: dotnet/runtime: .NET Workflow Guide
github: dotnet/runtime: Workflow Guide: FreeBSD Requirements
Cross-build under Linux Emulation
GitHub: Thefrank/dotnet-freebsd-crossbuild: Instructions for building dotNET for FreeBSD
Native build using Linux bootstrap binary
GitHub: sec/dotnet-core-freebsd-source-build: Collection of script to build .NET Core under FreeBSD
- Uses bootstrap binaries from Thefrank
.NET FreeBSD Binary Releases
The above GitHub (thefrank and sec) projects produce .NET FreeBSD Release Binaries:
github.com: thefrank: FreeBSD .NET Release Binaries (.NET 5, 6 and 7)
github.com: sec: FreeBSD .NET Release Binaries (.NET 6 and 7)
FreeBSD .NET Runtime Nightly Builds
Earlier and Other Work
This section documents earlier work that may continue to prove useful as references.
GitHub: jasonpugsley
windows.net: dotnet/Sdk/master/dotnet-sdk-latest-freebsd-x64.tar.gz
- Radarr Project -- Ships FreeBSD .NET binaries
.NET Framework Ports
.NET Framework 2.x
lang/linux-dotnet-runtime: Cross-platform .NET implementation (Runtime)
linux-dotnet-sdk: Cross-platform .NET implementation (Software Development Kit)
.NET Framework 1.1
lang/linux-dotnet11-runtime: Cross-platform .NET implementation (Runtime)
linux-dotnet11-sdk: Cross-platform .NET implementation (Software Development Kit)
.NET Framework 1.0