From acb2567b4a6d1e701f7fd24a51f1da792ab0515d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 3 Oct 2025 02:20:04 +0000 Subject: [PATCH 1/3] Backflow from https://github.com/dotnet/dotnet / afb87a9 build 285597 [[ commit created by automation ]] --- Directory.Build.targets | 2 +- eng/Signing.props | 3 + ...oft.AspNetCore.Watch.BrowserRefresh.csproj | 4 +- .../MSBuild/MSBuildForwardingLogger.cs | 5 +- .../dotnet/Commands/MSBuild/MSBuildLogger.cs | 96 ++++++++++++++++++- .../Workload/WorkloadCommandParser.cs | 10 +- src/Cli/dotnet/Parser.cs | 6 +- src/Cli/dotnet/Program.cs | 4 +- src/Layout/Directory.Build.props | 6 ++ src/Layout/redist/targets/Crossgen.targets | 1 + .../redist/targets/GenerateLayout.targets | 7 ++ .../redist/targets/OverlaySdkOnLKG.targets | 4 +- .../MSBuildSdkResolver.cs | 6 +- .../ProcessFrameworkReferences.cs | 36 +++++-- .../CommandTests/MSBuild/FakeTelemetry.cs | 10 +- .../MSBuild/GivenMSBuildLogger.cs | 96 +++++++++++++++++++ 16 files changed, 259 insertions(+), 37 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index f8d73e5ff744..464f65cfee17 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -73,7 +73,7 @@ $(MicrosoftAspNetCoreAppRefPackageVersion) - ${SupportedRuntimeIdentifiers} + $(SupportedRuntimeIdentifiers) $(MicrosoftAspNetCoreAppRefPackageVersion) $(MicrosoftAspNetCoreAppRefPackageVersion) diff --git a/eng/Signing.props b/eng/Signing.props index 484697efecbc..872602d12f5c 100644 --- a/eng/Signing.props +++ b/eng/Signing.props @@ -84,6 +84,9 @@ + + + diff --git a/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj b/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj index c8835d1acb42..84852c4df9a9 100644 --- a/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj +++ b/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj @@ -25,8 +25,8 @@ - - + + diff --git a/src/Cli/dotnet/Commands/MSBuild/MSBuildForwardingLogger.cs b/src/Cli/dotnet/Commands/MSBuild/MSBuildForwardingLogger.cs index fc7c6488b910..fef3e251bedc 100644 --- a/src/Cli/dotnet/Commands/MSBuild/MSBuildForwardingLogger.cs +++ b/src/Cli/dotnet/Commands/MSBuild/MSBuildForwardingLogger.cs @@ -26,11 +26,14 @@ public void Initialize(IEventSource eventSource) eventSource4.IncludeEvaluationPropertiesAndItems(); } - // Only forward telemetry events + // Forward telemetry events if (eventSource is IEventSource2 eventSource2) { eventSource2.TelemetryLogged += (sender, args) => BuildEventRedirector.ForwardEvent(args); } + + // Forward build finished events. Is used for logging the aggregated build events. + eventSource.BuildFinished += (sender, args) => BuildEventRedirector.ForwardEvent(args); } public void Initialize(IEventSource eventSource, int nodeCount) diff --git a/src/Cli/dotnet/Commands/MSBuild/MSBuildLogger.cs b/src/Cli/dotnet/Commands/MSBuild/MSBuildLogger.cs index 4f4f03506e15..34bb8fa92085 100644 --- a/src/Cli/dotnet/Commands/MSBuild/MSBuildLogger.cs +++ b/src/Cli/dotnet/Commands/MSBuild/MSBuildLogger.cs @@ -22,6 +22,10 @@ public sealed class MSBuildLogger : INodeLogger internal const string BuildcheckRunEventName = "buildcheck/run"; internal const string BuildcheckRuleStatsEventName = "buildcheck/rule"; + // These two events are aggregated and sent at the end of the build. + internal const string TaskFactoryTelemetryAggregatedEventName = "build/tasks/taskfactory"; + internal const string TasksTelemetryAggregatedEventName = "build/tasks"; + internal const string SdkTaskBaseCatchExceptionTelemetryEventName = "taskBaseCatchException"; internal const string PublishPropertiesTelemetryEventName = "PublishProperties"; internal const string WorkloadPublishPropertiesTelemetryEventName = "WorkloadPublishProperties"; @@ -48,6 +52,15 @@ public sealed class MSBuildLogger : INodeLogger /// internal const string SdkContainerPublishErrorEventName = "sdk/container/publish/error"; + /// + /// Stores aggregated telemetry data by event name and property name. + /// + /// + /// Key: event name, Value: property name to aggregated count. + /// Aggregation is very basic. Only integer properties are aggregated by summing values. Non-integer properties are ignored. + /// + private Dictionary> _aggregatedEvents = new(); + public MSBuildLogger() { try @@ -73,6 +86,14 @@ public MSBuildLogger() } } + /// + /// Constructor for testing purposes. + /// + internal MSBuildLogger(ITelemetry telemetry) + { + _telemetry = telemetry; + } + public void Initialize(IEventSource eventSource, int nodeCount) { Initialize(eventSource); @@ -95,6 +116,8 @@ public void Initialize(IEventSource eventSource) { eventSource2.TelemetryLogged += OnTelemetryLogged; } + + eventSource.BuildFinished += OnBuildFinished; } } catch (Exception) @@ -103,6 +126,70 @@ public void Initialize(IEventSource eventSource) } } + private void OnBuildFinished(object sender, BuildFinishedEventArgs e) + { + SendAggregatedEventsOnBuildFinished(_telemetry); + } + + internal void SendAggregatedEventsOnBuildFinished(ITelemetry? telemetry) + { + if (_aggregatedEvents.TryGetValue(TaskFactoryTelemetryAggregatedEventName, out var taskFactoryData)) + { + var taskFactoryProperties = ConvertToStringDictionary(taskFactoryData); + + TrackEvent(telemetry, $"msbuild/{TaskFactoryTelemetryAggregatedEventName}", taskFactoryProperties, toBeHashed: [], toBeMeasured: []); + _aggregatedEvents.Remove(TaskFactoryTelemetryAggregatedEventName); + } + + if (_aggregatedEvents.TryGetValue(TasksTelemetryAggregatedEventName, out var tasksData)) + { + var tasksProperties = ConvertToStringDictionary(tasksData); + + TrackEvent(telemetry, $"msbuild/{TasksTelemetryAggregatedEventName}", tasksProperties, toBeHashed: [], toBeMeasured: []); + _aggregatedEvents.Remove(TasksTelemetryAggregatedEventName); + } + } + + private static Dictionary ConvertToStringDictionary(Dictionary properties) + { + Dictionary stringProperties = new(); + foreach (var kvp in properties) + { + stringProperties[kvp.Key] = kvp.Value.ToString(CultureInfo.InvariantCulture); + } + + return stringProperties; + } + + internal void AggregateEvent(TelemetryEventArgs args) + { + if (args.EventName == null || args.Properties == null) + { + return; + } + + if (!_aggregatedEvents.TryGetValue(args.EventName, out Dictionary? eventData)) + { + eventData = new Dictionary(); + _aggregatedEvents[args.EventName] = eventData; + } + + foreach (var kvp in args.Properties) + { + if (int.TryParse(kvp.Value, CultureInfo.InvariantCulture, out int count)) + { + if (!eventData.ContainsKey(kvp.Key)) + { + eventData[kvp.Key] = count; + } + else + { + eventData[kvp.Key] += count; + } + } + } + } + internal static void FormatAndSend(ITelemetry? telemetry, TelemetryEventArgs args) { switch (args.EventName) @@ -198,7 +285,14 @@ private static void TrackEvent(ITelemetry? telemetry, string eventName, IDiction private void OnTelemetryLogged(object sender, TelemetryEventArgs args) { - FormatAndSend(_telemetry, args); + if (args.EventName == TaskFactoryTelemetryAggregatedEventName || args.EventName == TasksTelemetryAggregatedEventName) + { + AggregateEvent(args); + } + else + { + FormatAndSend(_telemetry, args); + } } public void Shutdown() diff --git a/src/Cli/dotnet/Commands/Workload/WorkloadCommandParser.cs b/src/Cli/dotnet/Commands/Workload/WorkloadCommandParser.cs index 3c6e0bb43c6d..32a38bdd9af9 100644 --- a/src/Cli/dotnet/Commands/Workload/WorkloadCommandParser.cs +++ b/src/Cli/dotnet/Commands/Workload/WorkloadCommandParser.cs @@ -174,10 +174,7 @@ private static Command ConstructCommand() private class ShowWorkloadsInfoAction : SynchronousCommandLineAction { - public ShowWorkloadsInfoAction() - { - Terminating = true; - } + public override bool Terminating => true; public override int Invoke(ParseResult parseResult) { @@ -189,10 +186,7 @@ public override int Invoke(ParseResult parseResult) private class ShowWorkloadsVersionOption : SynchronousCommandLineAction { - public ShowWorkloadsVersionOption() - { - Terminating = true; - } + public override bool Terminating => true; public override int Invoke(ParseResult parseResult) { diff --git a/src/Cli/dotnet/Parser.cs b/src/Cli/dotnet/Parser.cs index 4bddb07f976e..23dd3d6ebef3 100644 --- a/src/Cli/dotnet/Parser.cs +++ b/src/Cli/dotnet/Parser.cs @@ -427,10 +427,8 @@ public override void Write(HelpContext context) private class PrintCliSchemaAction : SynchronousCommandLineAction { - internal PrintCliSchemaAction() - { - Terminating = true; - } + public override bool Terminating => true; + public override int Invoke(ParseResult parseResult) { CliSchema.PrintCliSchema(parseResult.CommandResult, parseResult.InvocationConfiguration.Output, Program.TelemetryClient); diff --git a/src/Cli/dotnet/Program.cs b/src/Cli/dotnet/Program.cs index cd82a15330f4..ea6537b41516 100644 --- a/src/Cli/dotnet/Program.cs +++ b/src/Cli/dotnet/Program.cs @@ -237,8 +237,8 @@ internal static int ProcessArgs(string[] args, TimeSpan startupTime) // Get the global.json state to report in telemetry along with this command invocation. // We don't care about the actual SDK resolution, just the global.json information, // so just pass empty string as executable directory for resolution. - NativeWrapper.SdkResolutionResult result = NativeWrapper.NETCoreSdkResolverNativeWrapper.ResolveSdk(string.Empty, Environment.CurrentDirectory); - globalJsonState = result.GlobalJsonState; + // NativeWrapper.SdkResolutionResult result = NativeWrapper.NETCoreSdkResolverNativeWrapper.ResolveSdk(string.Empty, Environment.CurrentDirectory); + // globalJsonState = result.GlobalJsonState; } TelemetryEventEntry.SendFiltered(Tuple.Create(parseResult, performanceData, globalJsonState)); diff --git a/src/Layout/Directory.Build.props b/src/Layout/Directory.Build.props index 479a7c0a421e..c8bc9ffafc2a 100644 --- a/src/Layout/Directory.Build.props +++ b/src/Layout/Directory.Build.props @@ -78,4 +78,10 @@ $(MSBuildThisFileDirectory)pkg\ + + <_RoslynAppHost Include="$(OutputPath)Roslyn\bincore\csc.dll" /> + <_RoslynAppHost Include="$(OutputPath)Roslyn\bincore\vbc.dll" /> + <_RoslynAppHost Include="$(OutputPath)Roslyn\bincore\VBCSCompiler.dll" /> + + diff --git a/src/Layout/redist/targets/Crossgen.targets b/src/Layout/redist/targets/Crossgen.targets index 909c5de0bf3c..3e07f481af11 100644 --- a/src/Layout/redist/targets/Crossgen.targets +++ b/src/Layout/redist/targets/Crossgen.targets @@ -197,6 +197,7 @@ + diff --git a/src/Layout/redist/targets/GenerateLayout.targets b/src/Layout/redist/targets/GenerateLayout.targets index 65d4aff197c6..0b5bcb6fa182 100644 --- a/src/Layout/redist/targets/GenerateLayout.targets +++ b/src/Layout/redist/targets/GenerateLayout.targets @@ -59,6 +59,12 @@ + + @@ -495,6 +501,7 @@ + diff --git a/src/Layout/redist/targets/OverlaySdkOnLKG.targets b/src/Layout/redist/targets/OverlaySdkOnLKG.targets index 19505de69d50..54a82b807a82 100644 --- a/src/Layout/redist/targets/OverlaySdkOnLKG.targets +++ b/src/Layout/redist/targets/OverlaySdkOnLKG.targets @@ -31,10 +31,12 @@ + + UseHardLinksIfPossible="false" /> _getMsbuildRuntime; private readonly NETCoreSdkResolver _netCoreSdkResolver; - private const string DOTNET_HOST = nameof(DOTNET_HOST); + private const string DOTNET_HOST_PATH = nameof(DOTNET_HOST_PATH); private const string DotnetHostExperimentalKey = "DOTNET_EXPERIMENTAL_HOST_PATH"; private const string MSBuildTaskHostRuntimeVersion = "SdkResolverMSBuildTaskHostRuntimeVersion"; private const string SdkResolverHonoredGlobalJson = "SdkResolverHonoredGlobalJson"; @@ -245,12 +245,12 @@ private sealed class CachedState // this is the future-facing implementation. environmentVariablesToAdd ??= new Dictionary(1) { - [DOTNET_HOST] = fullPathToMuxer + [DOTNET_HOST_PATH] = fullPathToMuxer }; } else { - logger?.LogMessage($"Could not set '{DOTNET_HOST}' environment variable because dotnet executable '{fullPathToMuxer}' does not exist."); + logger?.LogMessage($"Could not set '{DOTNET_HOST_PATH}' environment variable because dotnet executable '{fullPathToMuxer}' does not exist."); } string? runtimeVersion = dotnetRoot != null ? diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/ProcessFrameworkReferences.cs b/src/Tasks/Microsoft.NET.Build.Tasks/ProcessFrameworkReferences.cs index acb871529a97..7b5b7bc0da15 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/ProcessFrameworkReferences.cs +++ b/src/Tasks/Microsoft.NET.Build.Tasks/ProcessFrameworkReferences.cs @@ -817,20 +817,36 @@ private ToolPackSupport AddToolPack( { var packNamePattern = knownPack.GetMetadata(packName + "PackNamePattern"); var packSupportedRuntimeIdentifiers = knownPack.GetMetadata(packName + "RuntimeIdentifiers").Split(';'); - // When publishing for the non-portable RID that matches NETCoreSdkRuntimeIdentifier, prefer NETCoreSdkRuntimeIdentifier for the host. + var packSupportedPortableRuntimeIdentifiers = knownPack.GetMetadata(packName + "PortableRuntimeIdentifiers").Split(';'); + + // When publishing for a non-portable RID, prefer NETCoreSdkRuntimeIdentifier for the host. // Otherwise prefer the NETCoreSdkPortableRuntimeIdentifier. - // This makes non-portable SDKs behave the same as portable SDKs except for the specific case of targetting the non-portable RID. - // It also enables the non-portable ILCompiler to be packaged separately from the SDK and - // only required when publishing for the non-portable SDK RID. - string portableSdkRid = !string.IsNullOrEmpty(NETCoreSdkPortableRuntimeIdentifier) ? NETCoreSdkPortableRuntimeIdentifier : NETCoreSdkRuntimeIdentifier; - bool targetsNonPortableSdkRid = EffectiveRuntimeIdentifier == NETCoreSdkRuntimeIdentifier && NETCoreSdkRuntimeIdentifier != portableSdkRid; - string? hostRuntimeIdentifier = targetsNonPortableSdkRid ? NETCoreSdkRuntimeIdentifier : portableSdkRid; - Log.LogMessage(MessageImportance.Low, $"Determining best RID for '{knownPack.ItemSpec}@{packVersion}' for '{hostRuntimeIdentifier}' from among '{knownPack.GetMetadata(packName + "RuntimeIdentifiers")}'"); - // Get the best RID for the host machine, which will be used to validate that we can run crossgen for the target platform and architecture + // This makes non-portable SDKs behave the same as portable SDKs except for the specific case of targetting a non-portable RID. + // This ensures that targeting portable RIDs doesn't require any non-portable assets that aren't packaged in the SDK. + // Due to size concerns, the non-portable ILCompiler and Crossgen2 aren't included by default in non-portable SDK distributions. var runtimeGraph = new RuntimeGraphCache(this).GetRuntimeGraph(RuntimeGraphPath); - hostRuntimeIdentifier = NuGetUtils.GetBestMatchingRid(runtimeGraph, hostRuntimeIdentifier, packSupportedRuntimeIdentifiers, out bool wasInGraph); + + // Prefer portable when the "supported RID" for the tool pack is the same RID as the "supported portable RID". + // This makes non-portable SDKs behave the same as portable SDKs except for the specific cases added to "supported", such as targeting the non-portable RID. + // This also ensures that targeting common RIDs doesn't require any non-portable assets that aren't packaged in the SDK by default. + // Due to size concerns, the non-portable ILCompiler and Crossgen2 aren't included by default in non-portable SDK distributions. + var runtimeIdentifier = RuntimeIdentifier ?? "any"; + string? supportedTargetRid = NuGetUtils.GetBestMatchingRid(runtimeGraph, runtimeIdentifier, packSupportedRuntimeIdentifiers, out _); + string? supportedPortableTargetRid = NuGetUtils.GetBestMatchingRid(runtimeGraph, runtimeIdentifier, packSupportedPortableRuntimeIdentifiers, out _); + + bool usePortable = !string.IsNullOrEmpty(NETCoreSdkPortableRuntimeIdentifier) + && supportedTargetRid is not null && supportedPortableTargetRid is not null + && supportedTargetRid == supportedPortableTargetRid; + + // Get the best RID for the host machine, which will be used to validate that we can run crossgen for the target platform and architecture + Log.LogMessage(MessageImportance.Low, $"Determining best RID for '{knownPack.ItemSpec}@{packVersion}' from among '{knownPack.GetMetadata(packName + "RuntimeIdentifiers")}'"); + string? hostRuntimeIdentifier = usePortable + ? NuGetUtils.GetBestMatchingRid(runtimeGraph, NETCoreSdkPortableRuntimeIdentifier!, packSupportedPortableRuntimeIdentifiers, out _) + : NuGetUtils.GetBestMatchingRid(runtimeGraph, NETCoreSdkRuntimeIdentifier!, packSupportedRuntimeIdentifiers, out _); + if (hostRuntimeIdentifier == null) { + Log.LogMessage(MessageImportance.Low, $"No matching RID was found'"); return ToolPackSupport.UnsupportedForHostRuntimeIdentifier; } Log.LogMessage(MessageImportance.Low, $"Best RID for '{knownPack.ItemSpec}@{packVersion}' is '{hostRuntimeIdentifier}'"); diff --git a/test/dotnet.Tests/CommandTests/MSBuild/FakeTelemetry.cs b/test/dotnet.Tests/CommandTests/MSBuild/FakeTelemetry.cs index 2f131031b24e..c49394440202 100644 --- a/test/dotnet.Tests/CommandTests/MSBuild/FakeTelemetry.cs +++ b/test/dotnet.Tests/CommandTests/MSBuild/FakeTelemetry.cs @@ -10,11 +10,13 @@ namespace Microsoft.DotNet.Cli.MSBuild.Tests public class FakeTelemetry : ITelemetry { public bool Enabled { get; set; } = true; + + private readonly List _logEntries = new List(); public void TrackEvent(string eventName, IDictionary properties, IDictionary measurements) { - LogEntry = new LogEntry { EventName = eventName, Properties = properties, Measurement = measurements }; - + var entry = new LogEntry { EventName = eventName, Properties = properties, Measurement = measurements }; + _logEntries.Add(entry); } public void Flush() @@ -25,8 +27,8 @@ public void Dispose() { } - public LogEntry LogEntry { get; private set; } + public LogEntry LogEntry => _logEntries.Count > 0 ? _logEntries[_logEntries.Count - 1] : null; + public IReadOnlyList LogEntries => _logEntries.AsReadOnly(); } - } diff --git a/test/dotnet.Tests/CommandTests/MSBuild/GivenMSBuildLogger.cs b/test/dotnet.Tests/CommandTests/MSBuild/GivenMSBuildLogger.cs index dc0ca30e12f8..12a75b9493ee 100644 --- a/test/dotnet.Tests/CommandTests/MSBuild/GivenMSBuildLogger.cs +++ b/test/dotnet.Tests/CommandTests/MSBuild/GivenMSBuildLogger.cs @@ -118,5 +118,101 @@ public void ItCanSendProperties() fakeTelemetry.LogEntry.Properties.Should().BeEquivalentTo(telemetryEventArgs.Properties); } + + [Fact] + public void ItAggregatesEvents() + { + var fakeTelemetry = new FakeTelemetry(); + fakeTelemetry.Enabled = true; + var logger = new MSBuildLogger(fakeTelemetry); + + var event1 = new TelemetryEventArgs + { + EventName = MSBuildLogger.TaskFactoryTelemetryAggregatedEventName, + Properties = new Dictionary + { + { "AssemblyTaskFactoryTasksExecutedCount", "2" }, + { "RoslynCodeTaskFactoryTasksExecutedCount", "1" } + } + }; + + var event2 = new TelemetryEventArgs + { + EventName = MSBuildLogger.TaskFactoryTelemetryAggregatedEventName, + Properties = new Dictionary + { + { "AssemblyTaskFactoryTasksExecutedCount", "3" }, + { "CustomTaskFactoryTasksExecutedCount", "2" } + } + }; + + var event3 = new TelemetryEventArgs + { + EventName = MSBuildLogger.TasksTelemetryAggregatedEventName, + Properties = new Dictionary + { + { "TasksExecutedCount", "3" }, + { "TaskHostTasksExecutedCount", "2" } + } + }; + + var event4 = new TelemetryEventArgs + { + EventName = MSBuildLogger.TasksTelemetryAggregatedEventName, + Properties = new Dictionary + { + { "TasksExecutedCount", "5" } + } + }; + + logger.AggregateEvent(event1); + logger.AggregateEvent(event2); + logger.AggregateEvent(event3); + logger.AggregateEvent(event4); + + logger.SendAggregatedEventsOnBuildFinished(fakeTelemetry); + + fakeTelemetry.LogEntries.Should().HaveCount(2); + + var taskFactoryEntry = fakeTelemetry.LogEntries.FirstOrDefault(e => e.EventName == $"msbuild/{MSBuildLogger.TaskFactoryTelemetryAggregatedEventName}"); + taskFactoryEntry.Should().NotBeNull(); + taskFactoryEntry.Properties["AssemblyTaskFactoryTasksExecutedCount"].Should().Be("5"); // 2 + 3 + taskFactoryEntry.Properties["RoslynCodeTaskFactoryTasksExecutedCount"].Should().Be("1"); // 1 + 0 + taskFactoryEntry.Properties["CustomTaskFactoryTasksExecutedCount"].Should().Be("2"); // 0 + 2 + + var tasksEntry = fakeTelemetry.LogEntries.FirstOrDefault(e => e.EventName == $"msbuild/{MSBuildLogger.TasksTelemetryAggregatedEventName}"); + tasksEntry.Should().NotBeNull(); + tasksEntry.Properties["TasksExecutedCount"].Should().Be("8"); // 3 + 5 + tasksEntry.Properties["TaskHostTasksExecutedCount"].Should().Be("2"); // 2 + 0 + } + + [Fact] + public void ItIgnoresNonIntegerPropertiesDuringAggregation() + { + var fakeTelemetry = new FakeTelemetry(); + fakeTelemetry.Enabled = true; + var logger = new MSBuildLogger(fakeTelemetry); + + var eventArgs = new TelemetryEventArgs + { + EventName = MSBuildLogger.TaskFactoryTelemetryAggregatedEventName, + Properties = new Dictionary + { + { "AssemblyTaskFactoryTasksExecutedCount", "3" }, + { "InvalidProperty", "not-a-number" }, + { "InvalidProperty2", "1.234" }, + } + }; + + logger.AggregateEvent(eventArgs); + + logger.SendAggregatedEventsOnBuildFinished(fakeTelemetry); + + fakeTelemetry.LogEntry.Should().NotBeNull(); + fakeTelemetry.LogEntry.EventName.Should().Be($"msbuild/{MSBuildLogger.TaskFactoryTelemetryAggregatedEventName}"); + fakeTelemetry.LogEntry.Properties["AssemblyTaskFactoryTasksExecutedCount"].Should().Be("3"); + fakeTelemetry.LogEntry.Properties.Should().NotContainKey("InvalidProperty"); + fakeTelemetry.LogEntry.Properties.Should().NotContainKey("InvalidProperty2"); + } } } From 029bd1166c4acfb3bb1a483d46cce89cfc236ff2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 3 Oct 2025 02:20:06 +0000 Subject: [PATCH 2/3] Update dependencies from https://github.com/dotnet/dotnet build 285597 Updated Dependencies: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, Microsoft.AspNetCore.Analyzers, Microsoft.AspNetCore.App.Ref, Microsoft.AspNetCore.App.Ref.Internal, Microsoft.AspNetCore.Authentication.Facebook, Microsoft.AspNetCore.Authentication.Google, Microsoft.AspNetCore.Authentication.MicrosoftAccount, Microsoft.AspNetCore.Authorization, Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Analyzers, Microsoft.AspNetCore.Components.Forms, Microsoft.AspNetCore.Components.SdkAnalyzers, Microsoft.AspNetCore.Components.Web, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.WebAssembly.Server, Microsoft.AspNetCore.Components.WebView, Microsoft.AspNetCore.DeveloperCertificates.XPlat, Microsoft.AspNetCore.Metadata, Microsoft.AspNetCore.Mvc.Analyzers, Microsoft.AspNetCore.Mvc.Api.Analyzers, Microsoft.AspNetCore.TestHost, Microsoft.Bcl.AsyncInterfaces, Microsoft.DotNet.Web.ItemTemplates.10.0, Microsoft.DotNet.Web.ProjectTemplates.10.0, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Embedded, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.ObjectPool, Microsoft.JSInterop, Microsoft.NET.HostModel, Microsoft.NET.ILLink.Tasks, Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64, Microsoft.NET.Sdk.WindowsDesktop, Microsoft.NETCore.App.Ref, Microsoft.NETCore.Platforms, Microsoft.Win32.SystemEvents, Microsoft.WindowsDesktop.App.Internal, Microsoft.WindowsDesktop.App.Ref, System.CodeDom, System.ComponentModel.Composition, System.Composition.AttributedModel, System.Composition.Convention, System.Composition.Hosting, System.Composition.Runtime, System.Composition.TypedParts, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Formats.Asn1, System.IO.Hashing, System.Reflection.MetadataLoadContext, System.Resources.Extensions, System.Security.Cryptography.Pkcs, System.Security.Cryptography.ProtectedData, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encoding.CodePages, System.Text.Json, System.Windows.Extensions (Version 10.0.0-rc.2.25476.105 -> 10.0.0-rc.2.25502.106) Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal, Microsoft.CodeAnalysis.Razor.Tooling.Internal, Microsoft.NET.Sdk.Razor.SourceGenerators.Transport (Version 10.0.0-preview.25476.105 -> 10.0.0-preview.25502.106) Microsoft.Build, Microsoft.Build.Localization, Microsoft.NET.Test.Sdk, Microsoft.TestPlatform.Build, Microsoft.TestPlatform.CLI (Version 18.0.0-preview-25476-105 -> 18.0.0-preview-25502-106) Microsoft.Build.NuGetSdkResolver, NuGet.Build.Tasks, NuGet.Build.Tasks.Console, NuGet.Build.Tasks.Pack, NuGet.CommandLine.XPlat, NuGet.Commands, NuGet.Common, NuGet.Configuration, NuGet.Credentials, NuGet.DependencyResolver.Core, NuGet.Frameworks, NuGet.LibraryModel, NuGet.Localization, NuGet.Packaging, NuGet.ProjectModel, NuGet.Protocol, NuGet.Versioning (Version 7.0.0-rc.47705 -> 7.0.0-rc.306) Microsoft.Build.Tasks.Git, Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.SignTool, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions, Microsoft.SourceLink.AzureRepos.Git, Microsoft.SourceLink.Bitbucket.Git, Microsoft.SourceLink.Common, Microsoft.SourceLink.GitHub, Microsoft.SourceLink.GitLab (Version 10.0.0-beta.25476.105 -> 10.0.0-beta.25502.106) Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.BuildClient, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.CodeStyle, Microsoft.CodeAnalysis.CSharp.Features, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.PublicApiAnalyzers, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild, Microsoft.Net.Compilers.Toolset, Microsoft.Net.Compilers.Toolset.Framework (Version 5.0.0-2.25476.105 -> 5.0.0-2.25502.106) Microsoft.Deployment.DotNet.Releases (Version 2.0.0-preview.1.25476.105 -> 2.0.0-preview.1.25502.106) Microsoft.DiaSymReader (Version 2.2.0-beta.25476.105 -> 2.2.0-beta.25502.106) Microsoft.FSharp.Compiler (Version 14.0.100-rc2.25476.105 -> 14.0.100-rc2.25502.106) Microsoft.TemplateEngine.Abstractions, Microsoft.TemplateEngine.Authoring.TemplateVerifier, Microsoft.TemplateEngine.Edge, Microsoft.TemplateEngine.Mocks, Microsoft.TemplateEngine.Orchestrator.RunnableProjects, Microsoft.TemplateEngine.TestHelper, Microsoft.TemplateEngine.Utils, Microsoft.TemplateSearch.Common, Microsoft.TemplateSearch.TemplateDiscovery (Version 10.0.100-rc.2.25476.105 -> 10.0.100-rc.2.25502.106) Microsoft.Web.Xdt (Version 3.2.0-preview.25476.105 -> 3.2.0-preview.25502.106) System.CommandLine (Version 2.0.0-rc.2.25476.105 -> 2.0.0-rc.2.25502.106) --- eng/Version.Details.props | 260 +++++++++---------- eng/Version.Details.xml | 522 +++++++++++++++++++------------------- global.json | 4 +- 3 files changed, 393 insertions(+), 393 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index f02fb7a363fa..ef2aceaea37a 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,137 +6,137 @@ This file should be imported by eng/Versions.props - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-preview.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 18.0.0-preview-25476-105 - 18.0.0-preview-25476-105 - 7.0.0-rc.47705 - 10.0.0-beta.25476.105 - 5.0.0-2.25476.105 - 5.0.0-2.25476.105 - 5.0.0-2.25476.105 - 5.0.0-2.25476.105 - 5.0.0-2.25476.105 - 5.0.0-2.25476.105 - 5.0.0-2.25476.105 - 10.0.0-preview.25476.105 - 5.0.0-2.25476.105 - 5.0.0-2.25476.105 - 2.0.0-preview.1.25476.105 - 2.2.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 14.0.100-rc2.25476.105 - 10.0.0-rc.2.25476.105 - 5.0.0-2.25476.105 - 5.0.0-2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-preview.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 18.0.0-preview-25502-106 + 18.0.0-preview-25502-106 + 7.0.0-rc.306 + 10.0.0-beta.25502.106 + 5.0.0-2.25502.106 + 5.0.0-2.25502.106 + 5.0.0-2.25502.106 + 5.0.0-2.25502.106 + 5.0.0-2.25502.106 + 5.0.0-2.25502.106 + 5.0.0-2.25502.106 + 10.0.0-preview.25502.106 + 5.0.0-2.25502.106 + 5.0.0-2.25502.106 + 2.0.0-preview.1.25502.106 + 2.2.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 14.0.100-rc2.25502.106 + 10.0.0-rc.2.25502.106 + 5.0.0-2.25502.106 + 5.0.0-2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 10.0.0-preview.7.25377.103 - 10.0.0-preview.25476.105 - 10.0.0-rc.2.25476.105 - 18.0.0-preview-25476-105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.0-beta.25476.105 - 10.0.100-rc.2.25476.105 - 10.0.100-rc.2.25476.105 - 10.0.100-rc.2.25476.105 - 10.0.100-rc.2.25476.105 - 10.0.100-rc.2.25476.105 - 10.0.100-rc.2.25476.105 - 10.0.100-rc.2.25476.105 - 10.0.100-rc.2.25476.105 - 10.0.100-rc.2.25476.105 - 18.0.0-preview-25476-105 - 18.0.0-preview-25476-105 - 3.2.0-preview.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 7.0.0-rc.47705 - 10.0.0-rc.2.25476.105 - 2.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 - 10.0.0-rc.2.25476.105 + 10.0.0-preview.25502.106 + 10.0.0-rc.2.25502.106 + 18.0.0-preview-25502-106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.0-beta.25502.106 + 10.0.100-rc.2.25502.106 + 10.0.100-rc.2.25502.106 + 10.0.100-rc.2.25502.106 + 10.0.100-rc.2.25502.106 + 10.0.100-rc.2.25502.106 + 10.0.100-rc.2.25502.106 + 10.0.100-rc.2.25502.106 + 10.0.100-rc.2.25502.106 + 10.0.100-rc.2.25502.106 + 18.0.0-preview-25502-106 + 18.0.0-preview-25502-106 + 3.2.0-preview.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 7.0.0-rc.306 + 10.0.0-rc.2.25502.106 + 2.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 + 10.0.0-rc.2.25502.106 2.1.0 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 47564f10bf78..ca66ef58b755 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,62 +1,62 @@ - + - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 @@ -68,170 +68,170 @@ https://github.com/dotnet/dotnet 6a953e76162f3f079405f80e28664fa51b136740 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 https://github.com/microsoft/testfx @@ -561,9 +561,9 @@ https://github.com/microsoft/testfx a65b77ad062d0a16ecd9452b828174d9efa8c89f - + https://github.com/dotnet/dotnet - c58f125f3cf423d8f57bb8df7ad798a3cfce2eaa + afb87a943ff83ab24bde7c1fa2c8d42f4b0efdc0 diff --git a/global.json b/global.json index 9b62e68f5125..8a75a84e3019 100644 --- a/global.json +++ b/global.json @@ -21,8 +21,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25476.105", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25476.105", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25502.106", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25502.106", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2737382" From 272a543495b429e9a8a53719038bca5d33328085 Mon Sep 17 00:00:00 2001 From: Noah Gilson Date: Fri, 3 Oct 2025 10:46:38 -0700 Subject: [PATCH 3/3] remove copied test entry --- test/dotnet.Tests/CommandTests/MSBuild/FakeTelemetry.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/dotnet.Tests/CommandTests/MSBuild/FakeTelemetry.cs b/test/dotnet.Tests/CommandTests/MSBuild/FakeTelemetry.cs index 284714c14086..bcb6a6dbfde1 100644 --- a/test/dotnet.Tests/CommandTests/MSBuild/FakeTelemetry.cs +++ b/test/dotnet.Tests/CommandTests/MSBuild/FakeTelemetry.cs @@ -10,8 +10,6 @@ namespace Microsoft.DotNet.Cli.MSBuild.Tests public class FakeTelemetry : ITelemetry { public bool Enabled { get; set; } = true; - - private readonly List _logEntries = new List(); private readonly List _logEntries = new List();