From 724ffe2d9ecd7128ef272cbadff074ea6f80d044 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Tue, 22 Nov 2022 15:42:09 -0500 Subject: [PATCH] [build] Pass NuGet.config when restoring Local builds have been occassionally failing for me: Determining projects to restore... C:\Users\Peter\source\xamarin-android\build-tools\xaprepare\xaprepare\package-download.proj : error NU1101: Unable to find package Microsoft.NETCore.App.Runtime.Mono.android-arm. No packages exist with this id in source(s): C:\Program Files\dotnet\library-packs, darc-pub-dotnet-emsdk-c3fc739, darc-pub-dotnet-runtime-1e1f688, xamarin.android util [C:\Users\Peter\source\xamarin-android\Xamarin.Android.sln] C:\Users\Peter\source\xamarin-android\build-tools\xaprepare\xaprepare\package-download.proj : error NU1101: Unable to find package Microsoft.NETCore.App.Runtime.Mono.android-arm64. No packages exist with this id in source(s): C:\Program Files\dotnet\library-packs, darc-pub-dotnet-emsdk-c3fc739, darc-pub-dotnet-runtime-1e1f688, xamarin.android util [C:\Users\Peter\source\xamarin-android\Xamarin.Android.sln] C:\Users\Peter\source\xamarin-android\build-tools\xaprepare\xaprepare\package-download.proj : error NU1101: Unable to find package Microsoft.NETCore.App.Runtime.Mono.android-x86. No packages exist with this id in source(s): C:\Program Files\dotnet\library-packs, darc-pub-dotnet-emsdk-c3fc739, darc-pub-dotnet-runtime-1e1f688, xamarin.android util [C:\Users\Peter\source\xamarin-android\Xamarin.Android.sln] C:\Users\Peter\source\xamarin-android\build-tools\xaprepare\xaprepare\package-download.proj : error NU1101: Unable to find package Microsoft.NETCore.App.Runtime.Mono.android-x64. No packages exist with this id in source(s): C:\Program Files\dotnet\library-packs, darc-pub-dotnet-emsdk-c3fc739, darc-pub-dotnet-runtime-1e1f688, xamarin.android util [C:\Users\Peter\source\xamarin-android\Xamarin.Android.sln] Failed to restore C:\Users\Peter\source\xamarin-android\build-tools\xaprepare\xaprepare\package-download.proj (in 1.79 sec). EXEC : error : dotnet restore C:\Users\Peter\source\xamarin-android\build-tools\xaprepare\xaprepare\package-download.proj failed. [C:\Users\Peter\source\xamarin-android\Xamarin.Android.sln] Fix this by explicitly passing NuGet.config files to various restores performed by xaprepare. --- .../xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs | 7 ++++++- .../xaprepare/xaprepare/Steps/Step_PrepareExternal.cs | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs b/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs index cfbb6d44413..e2c15d75d14 100644 --- a/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs +++ b/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs @@ -41,7 +41,12 @@ protected override async Task Execute (Context context) // Install runtime packs associated with the SDK previously installed. var packageDownloadProj = Path.Combine (BuildPaths.XamarinAndroidSourceRoot, "build-tools", "xaprepare", "xaprepare", "package-download.proj"); var logPath = Path.Combine (Configurables.Paths.BuildBinDir, $"msbuild-{context.BuildTimeStamp}-download-runtime-packs.binlog"); - if (!Utilities.RunCommand (Configurables.Paths.DotNetPreviewTool, new string [] { "restore", ProcessRunner.QuoteArgument (packageDownloadProj), ProcessRunner.QuoteArgument ($"-bl:{logPath}") })) { + var restoreArgs = new string [] { "restore", + ProcessRunner.QuoteArgument (packageDownloadProj), + "--configfile", Path.Combine (BuildPaths.XamarinAndroidSourceRoot, "NuGet.config"), + ProcessRunner.QuoteArgument ($"-bl:{logPath}"), + }; + if (!Utilities.RunCommand (Configurables.Paths.DotNetPreviewTool, restoreArgs)) { Log.ErrorLine ($"dotnet restore {packageDownloadProj} failed."); return false; } diff --git a/build-tools/xaprepare/xaprepare/Steps/Step_PrepareExternal.cs b/build-tools/xaprepare/xaprepare/Steps/Step_PrepareExternal.cs index 398464084a2..b49a3592d65 100644 --- a/build-tools/xaprepare/xaprepare/Steps/Step_PrepareExternal.cs +++ b/build-tools/xaprepare/xaprepare/Steps/Step_PrepareExternal.cs @@ -25,8 +25,9 @@ protected override async Task Execute (Context context) return false; return await msbuild.Restore ( - projectPath: Path.Combine (Configurables.Paths.ExternalXamarinAndroidToolsSln), + projectPath: Configurables.Paths.ExternalXamarinAndroidToolsSln, logTag: "xat-restore", + arguments: new List () { "--configfile", Path.Combine (Configurables.Paths.ExternalDir, "xamarin-android-tools", "NuGet.config") }, binlogName: "prepare-xat-restore" ); }