Repository navigation
.NET daily
-
Find the package versions for the commit you want to try.
Every commit on
mainpublishes NuGet packages, so you can try any commit once its CI build finishes (this usually takes 3-5 hours).- Open the commit on GitHub. For example, for commit
a8c512608c54fcb2b456dd6e9e2f90f1d44eaa93, go to https://github.com/dotnet/macios/commit/a8c512608c54fcb2b456dd6e9e2f90f1d44eaa93. - Scroll down to the comment that says Prepare .NET Release succeeded and expand Published NuGet packages.
- Find the
Microsoft.NET.Sdk.<platform>.Manifest-<band>.<version>.nupkgentry for your platform. For example, inMicrosoft.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
- The feature band is
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.
- Open the commit on GitHub. For example, for commit
-
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.
-
Open
global.json(oreng/Version.Details.xml) for that commit and find the.NET SDKversion (sdk.versioninglobal.json, orMicrosoft.NET.Sdkineng/Version.Details.xml). -
Example for the commit above: https://github.com/dotnet/macios/blob/a8c512608c54fcb2b456dd6e9e2f90f1d44eaa93/global.json#L3 (
12.0.100-alpha.1.26523.103). -
Download and install the
.pkgfor that .NET SDK version by substituting<version>(andarm64orx64for your Mac's architecture) into the URL:https://ci.dot.net/public/Sdk/<version>/dotnet-sdk-<version>-osx-arm64.pkgFor 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
-
-
Add a
NuGet.configto 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
packageSourcesfrom theNuGet.configfile in thedotnet/maciosrepository at that commit (for example: https://github.com/dotnet/macios/blob/a8c512608c54fcb2b456dd6e9e2f90f1d44eaa93/NuGet.config), removing the localtests/.nuget/packagesfeed and addingnuget.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 indotnet/macios'sNuGet.configchange over time, so make sure to copy them from the commit you're testing. -
Install the workload.
-
Create a
WorkloadRollback.jsonfile 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" } -
Install the workload using
WorkloadRollback.jsonandNuGet.config:sudo dotnet workload install <platform> --from-rollback-file WorkloadRollback.json --configfile NuGet.config # platform = ios, tvos, maccatalyst, or macos
-
-
Add a
global.jsonto your project directory:{ "sdk": { "version": "<.NET version from step #2>" } }For example:
{ "sdk": { "version": "12.0.100-alpha.1.26523.103" } } -
Build your project!
dotnet build /bl
If you run into any problems, please file an issue and include the binlog file (msbuild.binlog).