-
Notifications
You must be signed in to change notification settings - Fork 269
Description
NuGet Product Used
dotnet.exe
Product Version
10.0.201
Worked before?
No response
Impact
It bothers me. A fix would be nice
Repro Steps & Context
dotnet restore and dotnet publish can produce different contents in $(IntermediateOutputPath)*.nuget.g.targets.
I'd love to know why, and what can be done to fix it.
The setup:
-
Run on macOS. (I haven't tested elsewhere.)
-
Install Uno Platform, VSCode
-
Create a new project:
dotnet new unoapp -o unoapp -preset recommended -
Initialize as a git repo:
cd unoapp git init . git add . git commit -m 'dotnet new unoapp -o unoapp -preset recommended'
-
Cause
unoapp/obj/unoapp.csproj.nuget.g.targetsto be generated by bothdotnet restoreanddotnet publishat the "same" time:git clean -xdf ; dotnet publish -c Release -r android-x64 -f net10.0-android -bl unoapp/unoapp.csproj -p:PublishAot=true & dotnet restore ; fg
Make sure you copy and paste all the commands at once. We want the
dotnet publishanddotnet restorecommands to execute as close to the same time as possible.Interestingly, reversing the order --
dotnet restore & dotnet publish …-- doesn't result in build errors (as often?).
If you're "lucky", the build will fail 1:
$HOME/.nuget/packages/microsoft.dotnet.ilcompiler/10.0.5/build/Microsoft.NETCore.Native.Publish.targets(91,5): error MSB3030: Could not copy the file "bin/Release/net10.0-android/android-x64/native/unoapp.so" because it was not found.
The cause of the MSB3030 error is that the IlcCompile target doesn't exist (?!):
% dotnet build -v:diag msbuild.binlog > msbuild.binlog.txt
% grep '"IlcCompile"' msbuild.binlog.txt
The target "IlcCompile" listed in an AfterTargets attribute at "/usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/36.1.43/targets/Microsoft.Android.Sdk.NativeAOT.targets (205,7)" does not exist in the project, and will be ignored.which is problematic, because it's the IlcCompile target which is responsible for creating unoapp.so…
If you don't run dotnet restore and dotnet publish at the "same" time, the build will reliably succeed.
Additionally, the contents of unoapp/obj/unoapp.csproj.nuget.g.targets changes between dotnet restore and dotnet publish:
git clean -xdf
dotnet restore
cp unoapp/obj/unoapp.csproj.nuget.g.targets restored.targets
dotnet publish -c Release -r android-x64 -f net10.0-android -bl unoapp/unoapp.csproj -p:PublishAot=true
cp unoapp/obj/unoapp.csproj.nuget.g.targets published.targets
diff -u restored.targets published.targets--- restored.targets 2026-03-25 15:49:43
+++ published.targets 2026-03-25 15:53:35
@@ -74,14 +74,11 @@
<Import Project="$(NuGetPackageRoot)uno.winui.runtime.skia.android/6.5.64/build/Uno.WinUI.Runtime.Skia.Android.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.runtime.skia.android/6.5.64/build/Uno.WinUI.Runtime.Skia.Android.targets')" />
<Import Project="$(NuGetPackageRoot)skiasharp.views.uno.winui/3.119.1/buildTransitive/net8.0/SkiaSharp.Views.Uno.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)skiasharp.views.uno.winui/3.119.1/buildTransitive/net8.0/SkiaSharp.Views.Uno.WinUI.targets')" />
<Import Project="$(NuGetPackageRoot)uno.winui.lottie/6.5.64/buildTransitive/Uno.WinUI.Lottie.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.lottie/6.5.64/buildTransitive/Uno.WinUI.Lottie.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.winui.devserver/6.5.64/buildTransitive/Uno.WinUI.DevServer.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.devserver/6.5.64/buildTransitive/Uno.WinUI.DevServer.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
<Import Project="$(NuGetPackageRoot)uno.toolkit.winui/8.4.2/buildTransitive/Uno.Toolkit.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.toolkit.winui/8.4.2/buildTransitive/Uno.Toolkit.WinUI.targets')" />
<Import Project="$(NuGetPackageRoot)uno.themes.winui/6.1.1/buildTransitive/Uno.Themes.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.themes.winui/6.1.1/buildTransitive/Uno.Themes.WinUI.targets')" />
<Import Project="$(NuGetPackageRoot)communitytoolkit.mvvm/8.4.0/buildTransitive/CommunityToolkit.Mvvm.targets" Condition="Exists('$(NuGetPackageRoot)communitytoolkit.mvvm/8.4.0/buildTransitive/CommunityToolkit.Mvvm.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.ui.hotdesign/1.18.60/build/Uno.UI.HotDesign.targets" Condition="Exists('$(NuGetPackageRoot)uno.ui.hotdesign/1.18.60/build/Uno.UI.HotDesign.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.ui.app.mcp/1.1.3/buildTransitive/Uno.UI.App.Mcp.targets" Condition="Exists('$(NuGetPackageRoot)uno.ui.app.mcp/1.1.3/buildTransitive/Uno.UI.App.Mcp.targets')" />
<Import Project="$(NuGetPackageRoot)uno.material.winui/6.1.1/buildTransitive/Uno.Material.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.material.winui/6.1.1/buildTransitive/Uno.Material.WinUI.targets')" />
<Import Project="$(NuGetPackageRoot)uno.toolkit.winui.material/8.4.2/buildTransitive/Uno.Toolkit.WinUI.Material.targets" Condition="Exists('$(NuGetPackageRoot)uno.toolkit.winui.material/8.4.2/buildTransitive/Uno.Toolkit.WinUI.Material.targets')" />
<Import Project="$(NuGetPackageRoot)uno.settings.devserver/1.7.6/buildTransitive/Uno.Settings.DevServer.targets" Condition="Exists('$(NuGetPackageRoot)uno.settings.devserver/1.7.6/buildTransitive/Uno.Settings.DevServer.targets')" />
@@ -110,52 +107,6 @@
<Import Project="$(NuGetPackageRoot)uno.extensions.authentication/7.1.1/buildTransitive/Uno.Extensions.Authentication.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.authentication/7.1.1/buildTransitive/Uno.Extensions.Authentication.targets')" />
<Import Project="$(NuGetPackageRoot)uno.dsp.tasks/1.4.0/build/Uno.Dsp.Tasks.targets" Condition="Exists('$(NuGetPackageRoot)uno.dsp.tasks/1.4.0/build/Uno.Dsp.Tasks.targets')" />
</ImportGroup>
- <ImportGroup Condition=" '$(TargetFramework)' == 'net10.0-browserwasm' AND '$(ExcludeRestorePackageImports)' != 'true' ">
- <Import Project="$(NuGetPackageRoot)uno.winui/6.5.64/buildTransitive/net9.0/uno.winui.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui/6.5.64/buildTransitive/net9.0/uno.winui.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.icu-wasm/77.1.2/buildTransitive/Uno.icu-wasm.targets" Condition="Exists('$(NuGetPackageRoot)uno.icu-wasm/77.1.2/buildTransitive/Uno.icu-wasm.targets')" />
- <Import Project="$(NuGetPackageRoot)skiasharp.nativeassets.webassembly/3.119.1/buildTransitive/netstandard1.0/SkiaSharp.NativeAssets.WebAssembly.targets" Condition="Exists('$(NuGetPackageRoot)skiasharp.nativeassets.webassembly/3.119.1/buildTransitive/netstandard1.0/SkiaSharp.NativeAssets.WebAssembly.targets')" />
- <Import Project="$(NuGetPackageRoot)harfbuzzsharp.nativeassets.webassembly/8.3.1.1/buildTransitive/netstandard1.0/HarfBuzzSharp.NativeAssets.WebAssembly.targets" Condition="Exists('$(NuGetPackageRoot)harfbuzzsharp.nativeassets.webassembly/8.3.1.1/buildTransitive/netstandard1.0/HarfBuzzSharp.NativeAssets.WebAssembly.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.winui.runtime.skia.webassembly.browser/6.5.64/build/Uno.WinUI.Runtime.Skia.WebAssembly.Browser.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.runtime.skia.webassembly.browser/6.5.64/build/Uno.WinUI.Runtime.Skia.WebAssembly.Browser.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.winui.lottie/6.5.64/buildTransitive/Uno.WinUI.Lottie.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.lottie/6.5.64/buildTransitive/Uno.WinUI.Lottie.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.winui.devserver/6.5.64/buildTransitive/Uno.WinUI.DevServer.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.devserver/6.5.64/buildTransitive/Uno.WinUI.DevServer.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.wasm.bootstrap/10.0.22/build/Uno.Wasm.Bootstrap.targets" Condition="Exists('$(NuGetPackageRoot)uno.wasm.bootstrap/10.0.22/build/Uno.Wasm.Bootstrap.targets')" />
- <Import Project="$(NuGetPackageRoot)microsoft.extensions.options/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Options.targets')" />
- <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.toolkit.winui/8.4.2/buildTransitive/Uno.Toolkit.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.toolkit.winui/8.4.2/buildTransitive/Uno.Toolkit.WinUI.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.themes.winui/6.1.1/buildTransitive/Uno.Themes.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.themes.winui/6.1.1/buildTransitive/Uno.Themes.WinUI.targets')" />
- <Import Project="$(NuGetPackageRoot)skiasharp.views.uno.winui/3.119.1/buildTransitive/net8.0/SkiaSharp.Views.Uno.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)skiasharp.views.uno.winui/3.119.1/buildTransitive/net8.0/SkiaSharp.Views.Uno.WinUI.targets')" />
- <Import Project="$(NuGetPackageRoot)communitytoolkit.mvvm/8.4.0/buildTransitive/CommunityToolkit.Mvvm.targets" Condition="Exists('$(NuGetPackageRoot)communitytoolkit.mvvm/8.4.0/buildTransitive/CommunityToolkit.Mvvm.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.ui.hotdesign/1.18.60/build/Uno.UI.HotDesign.targets" Condition="Exists('$(NuGetPackageRoot)uno.ui.hotdesign/1.18.60/build/Uno.UI.HotDesign.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.ui.app.mcp/1.1.3/buildTransitive/Uno.UI.App.Mcp.targets" Condition="Exists('$(NuGetPackageRoot)uno.ui.app.mcp/1.1.3/buildTransitive/Uno.UI.App.Mcp.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.material.winui/6.1.1/buildTransitive/Uno.Material.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.material.winui/6.1.1/buildTransitive/Uno.Material.WinUI.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.toolkit.winui.material/8.4.2/buildTransitive/Uno.Toolkit.WinUI.Material.targets" Condition="Exists('$(NuGetPackageRoot)uno.toolkit.winui.material/8.4.2/buildTransitive/Uno.Toolkit.WinUI.Material.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.settings.devserver/1.7.6/buildTransitive/Uno.Settings.DevServer.targets" Condition="Exists('$(NuGetPackageRoot)uno.settings.devserver/1.7.6/buildTransitive/Uno.Settings.DevServer.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.sdk.extras/6.3.1/buildTransitive/Uno.Sdk.Extras.targets" Condition="Exists('$(NuGetPackageRoot)uno.sdk.extras/6.3.1/buildTransitive/Uno.Sdk.Extras.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.resizetizer/1.12.1/build/Uno.Resizetizer.targets" Condition="Exists('$(NuGetPackageRoot)uno.resizetizer/1.12.1/build/Uno.Resizetizer.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.fonts.opensans/2.8.1/buildTransitive/net7.0/Uno.Fonts.OpenSans.targets" Condition="Exists('$(NuGetPackageRoot)uno.fonts.opensans/2.8.1/buildTransitive/net7.0/Uno.Fonts.OpenSans.targets')" />
- <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.binder/10.0.2/buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.binder/10.0.2/buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets')" />
- <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets/9.0.9/buildTransitive/net8.0/Microsoft.Extensions.Configuration.UserSecrets.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets/9.0.9/buildTransitive/net8.0/Microsoft.Extensions.Configuration.UserSecrets.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.core/7.1.1/buildTransitive/Uno.Extensions.Core.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.core/7.1.1/buildTransitive/Uno.Extensions.Core.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.serialization/7.1.1/buildTransitive/Uno.Extensions.Serialization.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.serialization/7.1.1/buildTransitive/Uno.Extensions.Serialization.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.storage/7.1.1/buildTransitive/Uno.Extensions.Storage.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.storage/7.1.1/buildTransitive/Uno.Extensions.Storage.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.hosting/7.1.1/buildTransitive/Uno.Extensions.Hosting.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.hosting/7.1.1/buildTransitive/Uno.Extensions.Hosting.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.configuration/7.1.1/buildTransitive/Uno.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.configuration/7.1.1/buildTransitive/Uno.Extensions.Configuration.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.storage.winui/7.1.1/buildTransitive/Uno.Extensions.Storage.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.storage.winui/7.1.1/buildTransitive/Uno.Extensions.Storage.WinUI.targets')" />
- <Import Project="$(NuGetPackageRoot)refit/7.2.22/buildTransitive/netstandard2.0/refit.targets" Condition="Exists('$(NuGetPackageRoot)refit/7.2.22/buildTransitive/netstandard2.0/refit.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.serialization.refit/7.1.1/buildTransitive/Uno.Extensions.Serialization.Refit.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.serialization.refit/7.1.1/buildTransitive/Uno.Extensions.Serialization.Refit.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.http/7.1.1/buildTransitive/Uno.Extensions.Http.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.http/7.1.1/buildTransitive/Uno.Extensions.Http.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.serialization.http/7.1.1/buildTransitive/Uno.Extensions.Serialization.Http.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.serialization.http/7.1.1/buildTransitive/Uno.Extensions.Serialization.Http.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.reactive/7.1.1/buildTransitive/Uno.Extensions.Reactive.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.reactive/7.1.1/buildTransitive/Uno.Extensions.Reactive.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.reactive.winui/7.1.1/buildTransitive/Uno.Extensions.Reactive.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.reactive.winui/7.1.1/buildTransitive/Uno.Extensions.Reactive.WinUI.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.reactive.messaging/7.1.1/buildTransitive/Uno.Extensions.Reactive.Messaging.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.reactive.messaging/7.1.1/buildTransitive/Uno.Extensions.Reactive.Messaging.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.navigation/7.1.1/buildTransitive/Uno.Extensions.Navigation.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.navigation/7.1.1/buildTransitive/Uno.Extensions.Navigation.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.navigation.winui/7.1.1/buildTransitive/Uno.Extensions.Navigation.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.navigation.winui/7.1.1/buildTransitive/Uno.Extensions.Navigation.WinUI.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.navigation.toolkit.winui/7.1.1/buildTransitive/Uno.Extensions.Navigation.Toolkit.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.navigation.toolkit.winui/7.1.1/buildTransitive/Uno.Extensions.Navigation.Toolkit.WinUI.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.localization/7.1.1/buildTransitive/Uno.Extensions.Localization.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.localization/7.1.1/buildTransitive/Uno.Extensions.Localization.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.extensions.authentication/7.1.1/buildTransitive/Uno.Extensions.Authentication.targets" Condition="Exists('$(NuGetPackageRoot)uno.extensions.authentication/7.1.1/buildTransitive/Uno.Extensions.Authentication.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.dsp.tasks/1.4.0/build/Uno.Dsp.Tasks.targets" Condition="Exists('$(NuGetPackageRoot)uno.dsp.tasks/1.4.0/build/Uno.Dsp.Tasks.targets')" />
- <Import Project="$(NuGetPackageRoot)microsoft.net.sdk.webassembly.pack/10.0.5/build/Microsoft.NET.Sdk.WebAssembly.Pack.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.net.sdk.webassembly.pack/10.0.5/build/Microsoft.NET.Sdk.WebAssembly.Pack.targets')" />
- </ImportGroup>
<ImportGroup Condition=" '$(TargetFramework)' == 'net10.0-desktop' AND '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)uno.winui/6.5.64/buildTransitive/net9.0/uno.winui.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui/6.5.64/buildTransitive/net9.0/uno.winui.targets')" />
<Import Project="$(NuGetPackageRoot)uno.winui.runtime.skia.x11/6.5.64/buildTransitive/Uno.WinUI.Runtime.Skia.X11.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.runtime.skia.x11/6.5.64/buildTransitive/Uno.WinUI.Runtime.Skia.X11.targets')" />
@@ -166,7 +117,6 @@
<Import Project="$(NuGetPackageRoot)uno.icu-macos/77.1.2/buildTransitive/Uno.icu-macos.targets" Condition="Exists('$(NuGetPackageRoot)uno.icu-macos/77.1.2/buildTransitive/Uno.icu-macos.targets')" />
<Import Project="$(NuGetPackageRoot)uno.winui.runtime.skia.macos/6.5.64/buildTransitive/Uno.WinUI.Runtime.Skia.MacOS.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.runtime.skia.macos/6.5.64/buildTransitive/Uno.WinUI.Runtime.Skia.MacOS.targets')" />
<Import Project="$(NuGetPackageRoot)uno.winui.lottie/6.5.64/buildTransitive/Uno.WinUI.Lottie.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.lottie/6.5.64/buildTransitive/Uno.WinUI.Lottie.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.winui.devserver/6.5.64/buildTransitive/Uno.WinUI.DevServer.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.devserver/6.5.64/buildTransitive/Uno.WinUI.DevServer.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
<Import Project="$(NuGetPackageRoot)uno.toolkit.winui/8.4.2/buildTransitive/Uno.Toolkit.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.toolkit.winui/8.4.2/buildTransitive/Uno.Toolkit.WinUI.targets')" />
@@ -174,8 +124,6 @@
<Import Project="$(NuGetPackageRoot)skiasharp.nativeassets.webassembly/3.119.1/buildTransitive/netstandard1.0/SkiaSharp.NativeAssets.WebAssembly.targets" Condition="Exists('$(NuGetPackageRoot)skiasharp.nativeassets.webassembly/3.119.1/buildTransitive/netstandard1.0/SkiaSharp.NativeAssets.WebAssembly.targets')" />
<Import Project="$(NuGetPackageRoot)skiasharp.views.uno.winui/3.119.1/buildTransitive/net8.0/SkiaSharp.Views.Uno.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)skiasharp.views.uno.winui/3.119.1/buildTransitive/net8.0/SkiaSharp.Views.Uno.WinUI.targets')" />
<Import Project="$(NuGetPackageRoot)communitytoolkit.mvvm/8.4.0/buildTransitive/CommunityToolkit.Mvvm.targets" Condition="Exists('$(NuGetPackageRoot)communitytoolkit.mvvm/8.4.0/buildTransitive/CommunityToolkit.Mvvm.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.ui.hotdesign/1.18.60/build/Uno.UI.HotDesign.targets" Condition="Exists('$(NuGetPackageRoot)uno.ui.hotdesign/1.18.60/build/Uno.UI.HotDesign.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.ui.app.mcp/1.1.3/buildTransitive/Uno.UI.App.Mcp.targets" Condition="Exists('$(NuGetPackageRoot)uno.ui.app.mcp/1.1.3/buildTransitive/Uno.UI.App.Mcp.targets')" />
<Import Project="$(NuGetPackageRoot)uno.material.winui/6.1.1/buildTransitive/Uno.Material.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.material.winui/6.1.1/buildTransitive/Uno.Material.WinUI.targets')" />
<Import Project="$(NuGetPackageRoot)uno.toolkit.winui.material/8.4.2/buildTransitive/Uno.Toolkit.WinUI.Material.targets" Condition="Exists('$(NuGetPackageRoot)uno.toolkit.winui.material/8.4.2/buildTransitive/Uno.Toolkit.WinUI.Material.targets')" />
<Import Project="$(NuGetPackageRoot)uno.settings.devserver/1.7.6/buildTransitive/Uno.Settings.DevServer.targets" Condition="Exists('$(NuGetPackageRoot)uno.settings.devserver/1.7.6/buildTransitive/Uno.Settings.DevServer.targets')" />
@@ -212,14 +160,11 @@
<Import Project="$(NuGetPackageRoot)uno.winui.runtime.skia.appleuikit/6.5.64/build/Uno.WinUI.Runtime.Skia.AppleUIKit.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.runtime.skia.appleuikit/6.5.64/build/Uno.WinUI.Runtime.Skia.AppleUIKit.targets')" />
<Import Project="$(NuGetPackageRoot)skiasharp.views.uno.winui/3.119.1/buildTransitive/net8.0/SkiaSharp.Views.Uno.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)skiasharp.views.uno.winui/3.119.1/buildTransitive/net8.0/SkiaSharp.Views.Uno.WinUI.targets')" />
<Import Project="$(NuGetPackageRoot)uno.winui.lottie/6.5.64/buildTransitive/Uno.WinUI.Lottie.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.lottie/6.5.64/buildTransitive/Uno.WinUI.Lottie.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.winui.devserver/6.5.64/buildTransitive/Uno.WinUI.DevServer.targets" Condition="Exists('$(NuGetPackageRoot)uno.winui.devserver/6.5.64/buildTransitive/Uno.WinUI.DevServer.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.2/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
<Import Project="$(NuGetPackageRoot)uno.toolkit.winui/8.4.2/buildTransitive/Uno.Toolkit.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.toolkit.winui/8.4.2/buildTransitive/Uno.Toolkit.WinUI.targets')" />
<Import Project="$(NuGetPackageRoot)uno.themes.winui/6.1.1/buildTransitive/Uno.Themes.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.themes.winui/6.1.1/buildTransitive/Uno.Themes.WinUI.targets')" />
<Import Project="$(NuGetPackageRoot)communitytoolkit.mvvm/8.4.0/buildTransitive/CommunityToolkit.Mvvm.targets" Condition="Exists('$(NuGetPackageRoot)communitytoolkit.mvvm/8.4.0/buildTransitive/CommunityToolkit.Mvvm.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.ui.hotdesign/1.18.60/build/Uno.UI.HotDesign.targets" Condition="Exists('$(NuGetPackageRoot)uno.ui.hotdesign/1.18.60/build/Uno.UI.HotDesign.targets')" />
- <Import Project="$(NuGetPackageRoot)uno.ui.app.mcp/1.1.3/buildTransitive/Uno.UI.App.Mcp.targets" Condition="Exists('$(NuGetPackageRoot)uno.ui.app.mcp/1.1.3/buildTransitive/Uno.UI.App.Mcp.targets')" />
<Import Project="$(NuGetPackageRoot)uno.material.winui/6.1.1/buildTransitive/Uno.Material.WinUI.targets" Condition="Exists('$(NuGetPackageRoot)uno.material.winui/6.1.1/buildTransitive/Uno.Material.WinUI.targets')" />
<Import Project="$(NuGetPackageRoot)uno.toolkit.winui.material/8.4.2/buildTransitive/Uno.Toolkit.WinUI.Material.targets" Condition="Exists('$(NuGetPackageRoot)uno.toolkit.winui.material/8.4.2/buildTransitive/Uno.Toolkit.WinUI.Material.targets')" />
<Import Project="$(NuGetPackageRoot)uno.settings.devserver/1.7.6/buildTransitive/Uno.Settings.DevServer.targets" Condition="Exists('$(NuGetPackageRoot)uno.settings.devserver/1.7.6/buildTransitive/Uno.Settings.DevServer.targets')" />Why does unoapp.csproj.nuget.g.targets differ between dotnet restore and dotnet publish? My assumption is that if the contents didn't change, my "same time" builds would be more reliable.
Why I care
Why do I care? Who would be "silly" enough to run dotnet restore and dotnet publish at the same time?
The probable answer is a VSCode extension. I haven't figured out which extension yet, but if I open the unoapp folder within VSCode, then in a separate Terminal run:
git clean -xdf ; dotnet publish …it will very often fail, driving me bananas. My assumption is that some VSCode extension is also running dotnet restore when it detects that the directory has changed, resulting in "concurrent" dotnet restore and dotnet publish invocations.
Verbose Logs
Footnotes
-
It may alternatively fail with:
↩$HOME/.nuget/packages/uno.winui/6.6.0-dev.129/buildTransitive/uno.winui.runtime-replace.targets(53,3): error MSB4018: The "RuntimeAssetsSelectorTask_f6d55e04b2d97dcb6e7dca06fbf69fe8578d5375" task failed unexpectedly. System.Exception: System.InvalidOperationException: Sequence contains no matching element at System.Linq.ThrowHelper.ThrowNoMatchException() at System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2 predicate) at Uno.UI.Tasks.RuntimeAssetsSelector.RuntimeAssetsSelectorTask_f6d55e04b2d97dcb6e7dca06fbf69fe8578d5375.HandleForRuntimeEnabled(ITaskItem package, List`1 runtimeCopyLocalItemsToAdd, List`1 runtimeCopyLocalItemsToRemove, List`1 compileFileDefinitionsToAdd, List`1 compileFileDefinitionsToRemove, List`1 pdbFilesToAdd, Boolean isTwoLayer) in C:\a\1\s\src\SourceGenerators\Uno.UI.Tasks\RuntimeAssetsSelector\RuntimeAssetsSelectorTask.cs:line 392 at Uno.UI.Tasks.RuntimeAssetsSelector.RuntimeAssetsSelectorTask_f6d55e04b2d97dcb6e7dca06fbf69fe8578d5375.Execute() in C:\a\1\s\src\SourceGenerators\Uno.UI.Tasks\RuntimeAssetsSelector\RuntimeAssetsSelectorTask.cs:line 140 at Uno.UI.Tasks.RuntimeAssetsSelector.RuntimeAssetsSelectorTask_f6d55e04b2d97dcb6e7dca06fbf69fe8578d5375.Execute() in C:\a\1\s\src\SourceGenerators\Uno.UI.Tasks\RuntimeAssetsSelector\RuntimeAssetsSelectorTask.cs:line 160 at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(TaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask)