Skip to content

.NET daily

Rolf Bjarne Kvinge edited this page Nov 9, 2026 · 6 revisions

Use a daily/prerelease version

  1. Find the package versions for the commit you want to try.

    Every commit on main publishes NuGet packages, so you can try any commit once its CI build finishes (this usually takes 3-5 hours).

    1. Open the commit on GitHub. For example, for commit a8c512608c54fcb2b456dd6e9e2f90f1d44eaa93, go to https://github.com/dotnet/macios/commit/a8c512608c54fcb2b456dd6e9e2f90f1d44eaa93.
    2. Scroll down to the comment that says Prepare .NET Release succeeded and expand Published NuGet packages.
    3. Find the Microsoft.NET.Sdk.<platform>.Manifest-<band>.<version>.nupkg entry for your platform. For example, in Microsoft.NET.Sdk.iOS.Manifest-12.0.100-alpha.1.27.2.12024-net12-p1.nupkg:
      • The feature band is 12.0.100-alpha.1
      • The workload version is 27.2.12024-net12-p1

    If a commit doesn't have a Prepare .NET Release succeeded comment, check its parent commit or browse commits in main to find one that does.

  2. Identify and install the .NET SDK version this commit was built with.

    Using a close .NET SDK version might work, but we recommend installing the exact version the commit was built against to avoid compatibility issues.

    1. Open global.json (or eng/Version.Details.xml) for that commit and find the .NET SDK version (sdk.version in global.json, or Microsoft.NET.Sdk in eng/Version.Details.xml).

    2. Example for the commit above: https://github.com/dotnet/macios/blob/a8c512608c54fcb2b456dd6e9e2f90f1d44eaa93/global.json#L3 (12.0.100-alpha.1.26523.103).

    3. Download and install the .pkg for that .NET SDK version by substituting <version> (and arm64 or x64 for your Mac's architecture) into the URL:

      https://ci.dot.net/public/Sdk/<version>/dotnet-sdk-<version>-osx-arm64.pkg

      For example:

      https://ci.dot.net/public/Sdk/12.0.100-alpha.1.26523.103/dotnet-sdk-12.0.100-alpha.1.26523.103-osx-arm64.pkg

  3. Add a NuGet.config to your project directory.

    Daily and prerelease packages aren't published to nuget.org, so your project needs the NuGet feeds from the commit you're testing.

    Copy the packageSources from the NuGet.config file in the dotnet/macios repository at that commit (for example: https://github.com/dotnet/macios/blob/a8c512608c54fcb2b456dd6e9e2f90f1d44eaa93/NuGet.config), removing the local tests/.nuget/packages feed and adding nuget.org:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <clear />
        <add key="darc-pub-dotnet-macios-936520e" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-macios-936520ef/nuget/v3/index.json" />
        <add key="darc-pub-dotnet-macios-3909f97" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-macios-3909f975/nuget/v3/index.json" />
        <add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
        <add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
        <add key="dotnet10" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10/nuget/v3/index.json" />
        <add key="dotnet11" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet11/nuget/v3/index.json" />
        <add key="dotnet12" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet12/nuget/v3/index.json" />
        <add key="macios-dependencies" value="https://pkgs.dev.azure.com/xamarin/public/_packaging/macios-dependencies/nuget/v3/index.json" />
        <add key="xamarin-impl" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json" />
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
      </packageSources>
    </configuration>

    Note: the darc-pub-dotnet-macios-* feeds in dotnet/macios's NuGet.config change over time, so make sure to copy them from the commit you're testing.

  4. Install the workload.

    1. Create a WorkloadRollback.json file with the workload version and feature band from step 1:

      {
        "microsoft.net.sdk.ios": "27.2.12024-net12-p1/12.0.100-alpha.1",
        "microsoft.net.sdk.tvos": "27.2.12024-net12-p1/12.0.100-alpha.1",
        "microsoft.net.sdk.maccatalyst": "27.2.12024-net12-p1/12.0.100-alpha.1",
        "microsoft.net.sdk.macos": "27.2.12024-net12-p1/12.0.100-alpha.1"
      }
    2. Install the workload using WorkloadRollback.json and NuGet.config:

      sudo dotnet workload install <platform> --from-rollback-file WorkloadRollback.json --configfile NuGet.config # platform = ios, tvos, maccatalyst, or macos
  5. Add a global.json to your project directory:

    {
      "sdk": {
        "version": "<.NET version from step #2>"
      }
    }

    For example:

    {
      "sdk": {
        "version": "12.0.100-alpha.1.26523.103"
      }
    }
  6. Build your project!

    dotnet build /bl

If you run into any problems, please file an issue and include the binlog file (msbuild.binlog).

Clone this wiki locally