Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A repository to track efforts to produce a source tarball of the .NET Core SDK and all its components

License

NotificationsYou must be signed in to change notification settings

dotnet/source-build

Repository files navigation

Please useGitHubdiscussions to seeannouncements, ask questions, make suggestions, and share information with othermembers of the source-build community.

This repo is the starting point for building .NET from source. It containsdocumentation, tools, and is used for issue tracking.

Prerequisites

Building .NET

Follow the instructions indotnet/dotnet'sREADMEto build .NET from source.

Source-build goals

There are two primary goals of the source-build effort:

  1. Increase .NET adoption by focusing on making .NET available everywhere

    If .NET was available everywhere - including Linux distributions and packagemanagers like Homebrew - as a first class citizen, it would make .NET a moreattractive option for developers who might otherwise look at other languagesor runtimes. Users would be more likely to start using and keep using .NET if.NET is available on their development and release platforms of choice.

    To achieve this, we try to make it easier for community and partnermaintainers to build and release .NET for their platforms. We need to makesure source-build satisfies the official packaging rules of commonly usedLinux distributions, such asFedora andDebian. ManyLinux distributions have similar rules. These rules tend to have three mainprinciples:

    • Limited or no network access
    • Consistent reproducibility
    • Source code for everything
  2. Make maintenance of the .NET product easier

    The current way of making changes to .NET during a servicing release is tomake changes to individual product repositories and then adjust thedependency versions to flow the changes to the next set of repositories. Thisis repeated until all the repositories are updated. If there's an issuediscovered late in the release cycle, the fixes and the dependency updatesneed to be re-done quickly, which becomes difficult. It's also difficult toverify that the issue is fixed in the final product. It would be much easierto make and test product-wide changes if we could make atomic changes to onerepository and be able to build the whole product based on that source codeat once.

    In addition, getting source-build fully functional would provide everyonewith a place to try changes that would otherwise require a lot ofcoordination between multiple repositories - such as landing features thatrequire changes to both the runtime and the SDK.

    For more details about this Unified Build, seethisoverview.

Source-build can help achieve both these goals by making it easier for everyoneto build and release the entire .NET product end-to-end.

What does the source-build infrastructure do?

Source-build solves common challenges that most developers encounter when tryingto build the whole .NET SDK from source.

  • .NET is composed of many repositories that need to be built at a specificcombination of commits.
  • Each repository's build output needs to flow into the next repository's build.
  • By default, most .NET repositories download prebuilt binary dependencies fromonline sources. These are forbidden by typical Linux distribution rules, andinterfere with build output flow.
  • Some of the binary build dependencies are under a proprietary license, makingit difficult to build everything without taking accidental dependencies onnon-Open Source code. Many of our community members and partners want to buildan Open Source .NET only.
  • Flowing the build output automatically also means we can make and test changesthat require coordination across a number of repositories.
  • Nearly all .NET repositories require the .NET SDK to build. This is a circulardependency, which presents a bootstrapping problem, whether that's bringing upnew architectures (eg, riscv), or support new operating systems (eg, FreeBSD).
  • Microsoft controls the SDKs used bydotnet-install.sh scripts andMicrosoft.* andruntime.* nuget packages at nuget.org; source-build makesit possible for the community to bring up the platforms without Microsofthaving to accept/bless things.

Comprehensive Guidelines

.NET in Linux Distributions

DistroPackage FeedMaintainer
AlpineCommunity@ayakael
Arch LinuxCommunity
Arch User Repo
@alucryd
CentOS StreamCentOS Stream Mirror@omajid
FedoraDefault@omajid
HomebrewFormula@asbjornu
Red Hat Enterprise LinuxDefault@omajid
UbuntuDefault
Personal Package Archives
@mirespace

Support

.NET source build supports the following:

  1. Linux only, Windows and MacOS is not supported
  2. 1xx SDK feature band only (e.g. 8.0.1xx)

For the latest information about Source-Build support for new .NET versions,please check ourGitHub Discussionspage for announcements.

License

This repo is licensed under theMIT license.

About

A repository to track efforts to produce a source tarball of the .NET Core SDK and all its components

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors52


[8]ページ先頭

©2009-2025 Movatter.jp