From 17e9e00d4d823c7af994b0ee77eefefa811bc759 Mon Sep 17 00:00:00 2001 From: MichalPavlik Date: Tue, 11 Jun 2024 15:33:33 +0200 Subject: [PATCH 001/209] Added new set of credential env variables to be used separately for pull and push operations. Old set of variables is used for fallback. --- .../AuthHandshakeMessageHandler.cs | 47 +++++++++++++++++-- .../ContainerBuilder.cs | 3 +- .../ContainerHelpers.cs | 7 ++- .../DestinationImageReference.cs | 5 +- .../Registry/DefaultRegistryAPI.cs | 8 ++-- .../Registry/Registry.cs | 47 +++++++++++++++++-- .../Tasks/CreateNewImage.cs | 3 +- .../CreateNewImageTests.cs | 2 +- .../DockerRegistryTests.cs | 6 +-- .../EndToEndTests.cs | 8 ++-- .../RegistryTests.cs | 2 +- .../AuthHandshakeMessageHandlerTests.cs | 31 ++++++++++++ .../RegistryTests.cs | 4 +- 13 files changed, 147 insertions(+), 26 deletions(-) create mode 100644 src/Tests/Microsoft.NET.Build.Containers.UnitTests/AuthHandshakeMessageHandlerTests.cs diff --git a/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs b/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs index 94488fa74339..a036f0641833 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs @@ -36,12 +36,14 @@ private sealed record AuthInfo(string Realm, string? Service, string? Scope); private readonly string _registryName; private readonly ILogger _logger; + private readonly RegistryMode _registryMode; private static ConcurrentDictionary _authenticationHeaders = new(); - public AuthHandshakeMessageHandler(string registryName, HttpMessageHandler innerHandler, ILogger logger) : base(innerHandler) + public AuthHandshakeMessageHandler(string registryName, HttpMessageHandler innerHandler, ILogger logger, RegistryMode mode) : base(innerHandler) { _registryName = registryName; _logger = logger; + _registryMode = mode; } /// @@ -136,8 +138,7 @@ public DateTimeOffset ResolvedExpiration { private async Task<(AuthenticationHeaderValue, DateTimeOffset)?> GetAuthenticationAsync(string registry, string scheme, AuthInfo? bearerAuthInfo, CancellationToken cancellationToken) { // Allow overrides for auth via environment variables - string? credU = Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectUser); - string? credP = Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectPass); + (string? credU, string? credP) = GetDockerCredentialsFromEnvironment(_registryMode); // fetch creds for the host DockerCredentials? privateRepoCreds; @@ -175,6 +176,46 @@ public DateTimeOffset ResolvedExpiration { } } + /// + /// Gets docker credentials from the environment variables based on registry mode. + /// + internal static (string? credU, string? credP) GetDockerCredentialsFromEnvironment(RegistryMode mode) + { + if (mode == RegistryMode.Push) + { + string? credU = Environment.GetEnvironmentVariable(ContainerHelpers.PushHostObjectUser); + string? credP = Environment.GetEnvironmentVariable(ContainerHelpers.PushHostObjectPass); + if (string.IsNullOrEmpty(credU) || string.IsNullOrEmpty(credP)) + { + // Fallback to the old environment variables + return (Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectUser), + Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectPass)); + } + return (credU, credP); + } + else if (mode == RegistryMode.Pull) + { + return (Environment.GetEnvironmentVariable(ContainerHelpers.PullHostObjectUser), + Environment.GetEnvironmentVariable(ContainerHelpers.PullHostObjectPass)); + } + else if (mode == RegistryMode.PullFromOutput) + { + string? credU = Environment.GetEnvironmentVariable(ContainerHelpers.PullHostObjectUser); + string? credP = Environment.GetEnvironmentVariable(ContainerHelpers.PullHostObjectPass); + if (string.IsNullOrEmpty(credU) || string.IsNullOrEmpty(credP)) + { + // Fallback to the old environment variables + return (Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectUser), + Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectPass)); + } + return (credU, credP); + } + else + { + throw new InvalidEnumArgumentException(nameof(mode), (int)mode, typeof(RegistryMode)); + } + } + /// /// Implements the Docker OAuth2 Authentication flow as documented at . /// ContainerizeAsync( logger.LogTrace("Trace logging: enabled."); bool isLocalPull = string.IsNullOrEmpty(baseRegistry); - Registry? sourceRegistry = isLocalPull ? null : new Registry(baseRegistry, logger); + RegistryMode sourceRegistryMode = baseRegistry.Equals(outputRegistry, StringComparison.InvariantCultureIgnoreCase) ? RegistryMode.PullFromOutput : RegistryMode.Pull; + Registry? sourceRegistry = isLocalPull ? null : new Registry(baseRegistry, logger, sourceRegistryMode); SourceImageReference sourceImageReference = new(sourceRegistry, baseImageName, baseImageTag); DestinationImageReference destinationImageReference = DestinationImageReference.CreateFromSettings( diff --git a/src/Containers/Microsoft.NET.Build.Containers/ContainerHelpers.cs b/src/Containers/Microsoft.NET.Build.Containers/ContainerHelpers.cs index 5706c6171b5c..244ebd6cc9e4 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/ContainerHelpers.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/ContainerHelpers.cs @@ -16,9 +16,14 @@ namespace Microsoft.NET.Build.Containers; public static class ContainerHelpers { internal const string HostObjectUser = "SDK_CONTAINER_REGISTRY_UNAME"; - internal const string HostObjectPass = "SDK_CONTAINER_REGISTRY_PWORD"; + internal const string PushHostObjectUser = "SDK_CONTAINER_PUSH_REGISTRY_UNAME"; + internal const string PushHostObjectPass = "SDK_CONTAINER_PUSH_REGISTRY_PWORD"; + + internal const string PullHostObjectUser = "SDK_CONTAINER_PULL_REGISTRY_UNAME"; + internal const string PullHostObjectPass = "SDK_CONTAINER_PULL_REGISTRY_PWORD"; + internal const string DockerRegistryAlias = "docker.io"; /// diff --git a/src/Containers/Microsoft.NET.Build.Containers/DestinationImageReference.cs b/src/Containers/Microsoft.NET.Build.Containers/DestinationImageReference.cs index 46eb30ebc338..b885d791166b 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/DestinationImageReference.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/DestinationImageReference.cs @@ -75,7 +75,10 @@ public static DestinationImageReference CreateFromSettings( } else if (!string.IsNullOrEmpty(outputRegistry)) { - destinationImageReference = new DestinationImageReference(new Registry(outputRegistry, loggerFactory.CreateLogger()), repository, imageTags); + destinationImageReference = new DestinationImageReference( + new Registry(outputRegistry, loggerFactory.CreateLogger(), RegistryMode.Push), + repository, + imageTags); } else { diff --git a/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs b/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs index e83a4da029b3..e3bf32f39bd9 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs @@ -14,12 +14,12 @@ internal class DefaultRegistryAPI : IRegistryAPI private readonly HttpClient _client; private readonly ILogger _logger; - internal DefaultRegistryAPI(string registryName, Uri baseUri, ILogger logger) + internal DefaultRegistryAPI(string registryName, Uri baseUri, ILogger logger, RegistryMode mode) { bool isAmazonECRRegistry = baseUri.IsAmazonECRRegistry(); _baseUri = baseUri; _logger = logger; - _client = CreateClient(registryName, baseUri, logger, isAmazonECRRegistry); + _client = CreateClient(registryName, baseUri, logger, isAmazonECRRegistry, mode); Manifest = new DefaultManifestOperations(_baseUri, registryName, _client, _logger); Blob = new DefaultBlobOperations(_baseUri, registryName, _client, _logger); } @@ -28,7 +28,7 @@ internal DefaultRegistryAPI(string registryName, Uri baseUri, ILogger logger) public IManifestOperations Manifest { get; } - private static HttpClient CreateClient(string registryName, Uri baseUri, ILogger logger, bool isAmazonECRRegistry = false) + private static HttpClient CreateClient(string registryName, Uri baseUri, ILogger logger, bool isAmazonECRRegistry, RegistryMode mode) { var innerHandler = new SocketsHttpHandler(); @@ -42,7 +42,7 @@ private static HttpClient CreateClient(string registryName, Uri baseUri, ILogger }; } - HttpMessageHandler clientHandler = new AuthHandshakeMessageHandler(registryName, innerHandler, logger); + HttpMessageHandler clientHandler = new AuthHandshakeMessageHandler(registryName, innerHandler, logger, mode); if (isAmazonECRRegistry) { diff --git a/src/Containers/Microsoft.NET.Build.Containers/Registry/Registry.cs b/src/Containers/Microsoft.NET.Build.Containers/Registry/Registry.cs index d65dd905d9c5..b3df405b7457 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Registry/Registry.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/Registry/Registry.cs @@ -10,6 +10,13 @@ namespace Microsoft.NET.Build.Containers; +internal enum RegistryMode +{ + Push, + Pull, + PullFromOutput +} + internal sealed class Registry { private const string DockerHubRegistry1 = "registry-1.docker.io"; @@ -27,11 +34,23 @@ internal sealed class Registry /// public string RegistryName { get; } - internal Registry(string registryName, ILogger logger, IRegistryAPI? registryAPI = null, RegistrySettings? settings = null) : - this(ContainerHelpers.TryExpandRegistryToUri(registryName), logger, registryAPI, settings) + internal Registry(string registryName, ILogger logger, RegistryMode mode, RegistrySettings? settings = null) : this( + ContainerHelpers.TryExpandRegistryToUri(registryName), logger, new RegistryApiFactory(mode), settings) + { } + + internal Registry(string registryName, ILogger logger, IRegistryAPI registryAPI, RegistrySettings? settings = null) : this( + ContainerHelpers.TryExpandRegistryToUri(registryName), logger, new RegistryApiFactory(registryAPI), settings) { } - internal Registry(Uri baseUri, ILogger logger, IRegistryAPI? registryAPI = null, RegistrySettings? settings = null) + internal Registry(Uri baseUri, ILogger logger, IRegistryAPI registryAPI, RegistrySettings? settings = null) : + this(baseUri, logger, new RegistryApiFactory(registryAPI), settings) + { } + + internal Registry(Uri baseUri, ILogger logger, RegistryMode mode, RegistrySettings? settings = null) : + this(baseUri, logger, new RegistryApiFactory(mode), settings) + { } + + private Registry(Uri baseUri, ILogger logger, RegistryApiFactory factory, RegistrySettings? settings = null) { RegistryName = DeriveRegistryName(baseUri); @@ -44,7 +63,7 @@ internal Registry(Uri baseUri, ILogger logger, IRegistryAPI? registryAPI = null, _logger = logger; _settings = settings ?? new RegistrySettings(); - _registryAPI = registryAPI ?? new DefaultRegistryAPI(RegistryName, BaseUri, logger); + _registryAPI = factory.Create(RegistryName, BaseUri, logger); } private static string DeriveRegistryName(Uri baseUri) @@ -442,4 +461,24 @@ private async Task PushAsync(BuiltImage builtImage, SourceImageReference source, _logger.LogInformation(Strings.Registry_ManifestUploaded, RegistryName); } } + + private readonly ref struct RegistryApiFactory + { + private readonly IRegistryAPI? _registryApi; + private readonly RegistryMode? _mode; + public RegistryApiFactory(IRegistryAPI registryApi) + { + _registryApi = registryApi; + } + + public RegistryApiFactory(RegistryMode mode) + { + _mode = mode; + } + + public IRegistryAPI Create(string registryName, Uri baseUri, ILogger logger) + { + return _registryApi ?? new DefaultRegistryAPI(registryName, baseUri, logger, _mode!.Value); + } + } } diff --git a/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs b/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs index 669edba9590e..367d1552c2f6 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs @@ -48,7 +48,8 @@ internal async Task ExecuteAsync(CancellationToken cancellationToken) return !Log.HasLoggedErrors; } - Registry? sourceRegistry = IsLocalPull ? null : new Registry(BaseRegistry, logger); + RegistryMode sourceRegistryMode = BaseRegistry.Equals(OutputRegistry, StringComparison.InvariantCultureIgnoreCase) ? RegistryMode.PullFromOutput : RegistryMode.Pull; + Registry? sourceRegistry = IsLocalPull ? null : new Registry(BaseRegistry, logger, sourceRegistryMode); SourceImageReference sourceImageReference = new(sourceRegistry, BaseImageName, BaseImageTag); DestinationImageReference destinationImageReference = DestinationImageReference.CreateFromSettings( diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/CreateNewImageTests.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/CreateNewImageTests.cs index 0d3ee20642d5..d79db49d7020 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/CreateNewImageTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/CreateNewImageTests.cs @@ -225,7 +225,7 @@ public async System.Threading.Tasks.Task CreateNewImage_RootlessBaseImage() var logger = loggerFactory.CreateLogger(nameof(CreateNewImage_RootlessBaseImage)); // Build a rootless base runtime image. - Registry registry = new Registry(DockerRegistryManager.LocalRegistry, logger); + Registry registry = new(DockerRegistryManager.LocalRegistry, logger, RegistryMode.Push); ImageBuilder imageBuilder = await registry.GetImageManifestAsync( DockerRegistryManager.RuntimeBaseImage, diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryTests.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryTests.cs index 4d4f5df614ef..c1e9a19d5a4f 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryTests.cs @@ -22,7 +22,7 @@ public async Task GetFromRegistry() { var loggerFactory = new TestLoggerFactory(_testOutput); var logger = loggerFactory.CreateLogger(nameof(GetFromRegistry)); - Registry registry = new Registry(DockerRegistryManager.LocalRegistry, logger); + Registry registry = new(DockerRegistryManager.LocalRegistry, logger, RegistryMode.Push); var ridgraphfile = ToolsetUtils.GetRuntimeGraphFilePath(); // Don't need rid graph for local registry image pulls - since we're only pushing single image manifests (not manifest lists) @@ -73,9 +73,9 @@ public async Task WriteToPrivateBasicRegistry() // login to that registry ContainerCli.LoginCommand(_testOutput, "--username", "testuser", "--password", "testpassword", registryName).Execute().Should().Pass(); // push an image to that registry using username/password - Registry localAuthed = new Registry(new Uri($"https://{registryName}"), logger, settings: new() { ParallelUploadEnabled = false, ForceChunkedUpload = true }); + Registry localAuthed = new(new Uri($"https://{registryName}"), logger, RegistryMode.Push, settings: new() { ParallelUploadEnabled = false, ForceChunkedUpload = true }); var ridgraphfile = ToolsetUtils.GetRuntimeGraphFilePath(); - Registry mcr = new Registry(DockerRegistryManager.BaseImageSource, logger); + Registry mcr = new(DockerRegistryManager.BaseImageSource, logger, RegistryMode.Pull); var sourceImage = new SourceImageReference(mcr, DockerRegistryManager.RuntimeBaseImage, DockerRegistryManager.Net6ImageTag); var destinationImage = new DestinationImageReference(localAuthed, DockerRegistryManager.RuntimeBaseImage,new[] { DockerRegistryManager.Net6ImageTag }); diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/EndToEndTests.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/EndToEndTests.cs index c012fbd153f3..8aad9aae4eda 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/EndToEndTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/EndToEndTests.cs @@ -46,7 +46,7 @@ public async Task ApiEndToEndWithRegistryPushAndPull() // Build the image - Registry registry = new Registry(DockerRegistryManager.LocalRegistry, logger); + Registry registry = new(DockerRegistryManager.LocalRegistry, logger, RegistryMode.Push); ImageBuilder imageBuilder = await registry.GetImageManifestAsync( DockerRegistryManager.RuntimeBaseImage, @@ -93,7 +93,7 @@ public async Task ApiEndToEndWithLocalLoad() // Build the image - Registry registry = new Registry(DockerRegistryManager.LocalRegistry, logger); + Registry registry = new(DockerRegistryManager.LocalRegistry, logger, RegistryMode.Push); ImageBuilder imageBuilder = await registry.GetImageManifestAsync( DockerRegistryManager.RuntimeBaseImage, @@ -134,7 +134,7 @@ public async Task ApiEndToEndWithArchiveWritingAndLoad() // Build the image - Registry registry = new Registry(DockerRegistryManager.LocalRegistry, logger); + Registry registry = new(DockerRegistryManager.LocalRegistry, logger, RegistryMode.Push); ImageBuilder imageBuilder = await registry.GetImageManifestAsync( DockerRegistryManager.RuntimeBaseImage, @@ -479,7 +479,7 @@ public async Task CanPackageForAllSupportedContainerRIDs(string dockerPlatform, string publishDirectory = BuildLocalApp(tfm: ToolsetInfo.CurrentTargetFramework, rid: rid); // Build the image - Registry registry = new(DockerRegistryManager.BaseImageSource, logger); + Registry registry = new(DockerRegistryManager.BaseImageSource, logger, RegistryMode.Pull); var isWin = rid.StartsWith("win"); ImageBuilder? imageBuilder = await registry.GetImageManifestAsync( DockerRegistryManager.RuntimeBaseImage, diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs index 92bede0342c3..8b848ba6e524 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs @@ -39,7 +39,7 @@ public async Task CanReadManifestFromRegistry(string fullyQualifiedContainerName containerTag ??= "latest"; ILogger logger = _loggerFactory.CreateLogger(nameof(CanReadManifestFromRegistry)); - Registry registry = new Registry(containerRegistry, logger); + Registry registry = new(registryName, logger, RegistryMode.Pull); var ridgraphfile = ToolsetUtils.GetRuntimeGraphFilePath(); diff --git a/src/Tests/Microsoft.NET.Build.Containers.UnitTests/AuthHandshakeMessageHandlerTests.cs b/src/Tests/Microsoft.NET.Build.Containers.UnitTests/AuthHandshakeMessageHandlerTests.cs new file mode 100644 index 000000000000..04ec702cd184 --- /dev/null +++ b/src/Tests/Microsoft.NET.Build.Containers.UnitTests/AuthHandshakeMessageHandlerTests.cs @@ -0,0 +1,31 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +namespace Microsoft.NET.Build.Containers.UnitTests +{ + public class AuthHandshakeMessageHandlerTests + { + [Theory] + [InlineData("SDK_CONTAINER_REGISTRY_UNAME", "SDK_CONTAINER_REGISTRY_PWORD", (int)RegistryMode.Push)] + [InlineData("SDK_CONTAINER_PUSH_REGISTRY_UNAME", "SDK_CONTAINER_PUSH_REGISTRY_PWORD", (int)RegistryMode.Push)] + [InlineData("SDK_CONTAINER_PULL_REGISTRY_UNAME", "SDK_CONTAINER_PULL_REGISTRY_PWORD", (int)RegistryMode.Pull)] + [InlineData("SDK_CONTAINER_PULL_REGISTRY_UNAME", "SDK_CONTAINER_PULL_REGISTRY_PWORD", (int)RegistryMode.PullFromOutput)] + [InlineData("SDK_CONTAINER_REGISTRY_UNAME", "SDK_CONTAINER_REGISTRY_PWORD", (int)RegistryMode.PullFromOutput)] + public void GetDockerCredentialsFromEnvironment_ReturnsCorrectValues(string unameVarName, string pwordVarName, int mode) + { + string? originalUnameValue = Environment.GetEnvironmentVariable(unameVarName); + string? originalPwordValue = Environment.GetEnvironmentVariable(pwordVarName); + + Environment.SetEnvironmentVariable(unameVarName, "uname"); + Environment.SetEnvironmentVariable(pwordVarName, "pword"); + + (string? credU, string? credP) = AuthHandshakeMessageHandler.GetDockerCredentialsFromEnvironment((RegistryMode)mode); + + Assert.Equal("uname", credU); + Assert.Equal("pword", credP); + + // restore env variable values + Environment.SetEnvironmentVariable(unameVarName, originalUnameValue); + Environment.SetEnvironmentVariable(pwordVarName, originalPwordValue); + } + } +} diff --git a/src/Tests/Microsoft.NET.Build.Containers.UnitTests/RegistryTests.cs b/src/Tests/Microsoft.NET.Build.Containers.UnitTests/RegistryTests.cs index 3c3fba3d2cd6..87f81f3b85e5 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.UnitTests/RegistryTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.UnitTests/RegistryTests.cs @@ -30,7 +30,7 @@ public void Dispose() public void CheckIfGoogleArtifactRegistry(string registryName, bool isECR) { ILogger logger = _loggerFactory.CreateLogger(nameof(CheckIfGoogleArtifactRegistry)); - Registry registry = new Registry(registryName, logger); + Registry registry = new(registryName, logger, RegistryMode.Push); Assert.Equal(isECR, registry.IsGoogleArtifactRegistry); } @@ -38,7 +38,7 @@ public void CheckIfGoogleArtifactRegistry(string registryName, bool isECR) public void DockerIoAlias() { ILogger logger = _loggerFactory.CreateLogger(nameof(DockerIoAlias)); - Registry registry = new Registry("docker.io", logger); + Registry registry = new("docker.io", logger, RegistryMode.Push); Assert.True(registry.IsDockerHub); Assert.Equal("docker.io", registry.RegistryName); Assert.Equal("registry-1.docker.io", registry.BaseUri.Host); From 5c1acb706c0670c09762f0de29fe527a90fd4e41 Mon Sep 17 00:00:00 2001 From: MichalPavlik Date: Tue, 11 Jun 2024 16:15:47 +0200 Subject: [PATCH 002/209] Resolving conflict --- .../Registry/DefaultRegistryAPI.cs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs b/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs index e3bf32f39bd9..015ea7d535de 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs @@ -14,6 +14,14 @@ internal class DefaultRegistryAPI : IRegistryAPI private readonly HttpClient _client; private readonly ILogger _logger; + // Empirical value - Unoptimized .NET application layers can be ~200MB + // * .NET Runtime (~80MB) + // * ASP.NET Runtime (~25MB) + // * application and dependencies - variable, but _probably_ not more than the BCL? + // Given a 200MB target and a 1Mb/s upload speed, we'd expect an upload speed of 27m:57s. + // Making this a round 30 for convenience. + private static TimeSpan LongRequestTimeout = TimeSpan.FromMinutes(30); + internal DefaultRegistryAPI(string registryName, Uri baseUri, ILogger logger, RegistryMode mode) { bool isAmazonECRRegistry = baseUri.IsAmazonECRRegistry(); @@ -30,7 +38,12 @@ internal DefaultRegistryAPI(string registryName, Uri baseUri, ILogger logger, Re private static HttpClient CreateClient(string registryName, Uri baseUri, ILogger logger, bool isAmazonECRRegistry, RegistryMode mode) { - var innerHandler = new SocketsHttpHandler(); + var innerHandler = new SocketsHttpHandler() + { + UseCookies = false, + // the rest of the HTTP stack has an very long timeout (see below) but we should still have a reasonable timeout for the initial connection + ConnectTimeout = TimeSpan.FromSeconds(30) + }; // Ignore certificate for https localhost repository. if (baseUri.Host == "localhost" && baseUri.Scheme == "https") @@ -49,7 +62,10 @@ private static HttpClient CreateClient(string registryName, Uri baseUri, ILogger clientHandler = new AmazonECRMessageHandler(clientHandler); } - HttpClient client = new(clientHandler); + HttpClient client = new(clientHandler) + { + Timeout = LongRequestTimeout + }; client.DefaultRequestHeaders.Add("User-Agent", $".NET Container Library v{Constants.Version}"); From de2497352cd3c71f9720ce0bc3b996d198f5aff8 Mon Sep 17 00:00:00 2001 From: MichalPavlik Date: Tue, 11 Jun 2024 17:21:57 +0200 Subject: [PATCH 003/209] Added missing using --- .../AuthHandshakeMessageHandler.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs b/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs index a036f0641833..56ce998e79dd 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Concurrent; +using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Net; From 1766f3cd66bf8281faf44eba8ac3b41b0809cc45 Mon Sep 17 00:00:00 2001 From: MichalPavlik Date: Tue, 11 Jun 2024 17:37:10 +0200 Subject: [PATCH 004/209] Added new set of credential env variables to be used separately for pull and push operations. Old set of variables is used for fallback. --- .../AuthHandshakeMessageHandler.cs | 52 +++++++++++++++++-- .../ContainerBuilder.cs | 3 +- .../ContainerHelpers.cs | 7 ++- .../DestinationImageReference.cs | 5 +- .../Registry/DefaultRegistryAPI.cs | 8 +-- .../Registry/Registry.cs | 48 +++++++++++++++-- .../Tasks/CreateNewImage.cs | 3 +- .../CreateNewImageTests.cs | 2 +- .../DockerRegistryManager.cs | 4 +- .../DockerRegistryTests.cs | 6 +-- .../EndToEndTests.cs | 8 +-- .../RegistryTests.cs | 2 +- .../AuthHandshakeMessageHandlerTests.cs | 32 ++++++++++++ .../RegistryTests.cs | 4 +- 14 files changed, 156 insertions(+), 28 deletions(-) create mode 100644 src/Tests/Microsoft.NET.Build.Containers.UnitTests/AuthHandshakeMessageHandlerTests.cs diff --git a/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs b/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs index 10ff6c46a554..4751d450a9bc 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/AuthHandshakeMessageHandler.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Concurrent; +using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Net; @@ -38,12 +39,14 @@ private sealed record AuthInfo(string Realm, string? Service, string? Scope); private readonly string _registryName; private readonly ILogger _logger; + private readonly RegistryMode _registryMode; private static ConcurrentDictionary _authenticationHeaders = new(); - public AuthHandshakeMessageHandler(string registryName, HttpMessageHandler innerHandler, ILogger logger) : base(innerHandler) + public AuthHandshakeMessageHandler(string registryName, HttpMessageHandler innerHandler, ILogger logger, RegistryMode mode) : base(innerHandler) { _registryName = registryName; _logger = logger; + _registryMode = mode; } /// @@ -157,8 +160,7 @@ public DateTimeOffset ResolvedExpiration private async Task<(AuthenticationHeaderValue, DateTimeOffset)?> GetAuthenticationAsync(string registry, string scheme, AuthInfo? bearerAuthInfo, CancellationToken cancellationToken) { // Allow overrides for auth via environment variables - string? credU = Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectUser); - string? credP = Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectPass); + (string? credU, string? credP) = GetDockerCredentialsFromEnvironment(_registryMode); // fetch creds for the host DockerCredentials? privateRepoCreds; @@ -196,6 +198,50 @@ public DateTimeOffset ResolvedExpiration } } + /// + /// Gets docker credentials from the environment variables based on registry mode. + /// + internal static (string? credU, string? credP) GetDockerCredentialsFromEnvironment(RegistryMode mode) + { + if (mode == RegistryMode.Push) + { + string? credU = Environment.GetEnvironmentVariable(ContainerHelpers.PushHostObjectUser); + string? credP = Environment.GetEnvironmentVariable(ContainerHelpers.PushHostObjectPass); + + if (string.IsNullOrEmpty(credU) || string.IsNullOrEmpty(credP)) + { + // Fallback to the old environment variables + return (Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectUser), + Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectPass)); + } + + return (credU, credP); + } + else if (mode == RegistryMode.Pull) + { + return (Environment.GetEnvironmentVariable(ContainerHelpers.PullHostObjectUser), + Environment.GetEnvironmentVariable(ContainerHelpers.PullHostObjectPass)); + } + else if (mode == RegistryMode.PullFromOutput) + { + string? credU = Environment.GetEnvironmentVariable(ContainerHelpers.PullHostObjectUser); + string? credP = Environment.GetEnvironmentVariable(ContainerHelpers.PullHostObjectPass); + + if (string.IsNullOrEmpty(credU) || string.IsNullOrEmpty(credP)) + { + // Fallback to the old environment variables + return (Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectUser), + Environment.GetEnvironmentVariable(ContainerHelpers.HostObjectPass)); + } + + return (credU, credP); + } + else + { + throw new InvalidEnumArgumentException(nameof(mode), (int)mode, typeof(RegistryMode)); + } + } + /// /// Implements the Docker OAuth2 Authentication flow as documented at . /// ContainerizeAsync( logger.LogTrace("Trace logging: enabled."); bool isLocalPull = string.IsNullOrEmpty(baseRegistry); - Registry? sourceRegistry = isLocalPull ? null : new Registry(baseRegistry, logger); + RegistryMode sourceRegistryMode = baseRegistry.Equals(outputRegistry, StringComparison.InvariantCultureIgnoreCase) ? RegistryMode.PullFromOutput : RegistryMode.Pull; + Registry? sourceRegistry = isLocalPull ? null : new Registry(baseRegistry, logger, sourceRegistryMode); SourceImageReference sourceImageReference = new(sourceRegistry, baseImageName, baseImageTag); DestinationImageReference destinationImageReference = DestinationImageReference.CreateFromSettings( diff --git a/src/Containers/Microsoft.NET.Build.Containers/ContainerHelpers.cs b/src/Containers/Microsoft.NET.Build.Containers/ContainerHelpers.cs index 5706c6171b5c..244ebd6cc9e4 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/ContainerHelpers.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/ContainerHelpers.cs @@ -16,9 +16,14 @@ namespace Microsoft.NET.Build.Containers; public static class ContainerHelpers { internal const string HostObjectUser = "SDK_CONTAINER_REGISTRY_UNAME"; - internal const string HostObjectPass = "SDK_CONTAINER_REGISTRY_PWORD"; + internal const string PushHostObjectUser = "SDK_CONTAINER_PUSH_REGISTRY_UNAME"; + internal const string PushHostObjectPass = "SDK_CONTAINER_PUSH_REGISTRY_PWORD"; + + internal const string PullHostObjectUser = "SDK_CONTAINER_PULL_REGISTRY_UNAME"; + internal const string PullHostObjectPass = "SDK_CONTAINER_PULL_REGISTRY_PWORD"; + internal const string DockerRegistryAlias = "docker.io"; /// diff --git a/src/Containers/Microsoft.NET.Build.Containers/DestinationImageReference.cs b/src/Containers/Microsoft.NET.Build.Containers/DestinationImageReference.cs index 46eb30ebc338..b885d791166b 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/DestinationImageReference.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/DestinationImageReference.cs @@ -75,7 +75,10 @@ public static DestinationImageReference CreateFromSettings( } else if (!string.IsNullOrEmpty(outputRegistry)) { - destinationImageReference = new DestinationImageReference(new Registry(outputRegistry, loggerFactory.CreateLogger()), repository, imageTags); + destinationImageReference = new DestinationImageReference( + new Registry(outputRegistry, loggerFactory.CreateLogger(), RegistryMode.Push), + repository, + imageTags); } else { diff --git a/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs b/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs index 885879b29b07..015ea7d535de 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/Registry/DefaultRegistryAPI.cs @@ -22,12 +22,12 @@ internal class DefaultRegistryAPI : IRegistryAPI // Making this a round 30 for convenience. private static TimeSpan LongRequestTimeout = TimeSpan.FromMinutes(30); - internal DefaultRegistryAPI(string registryName, Uri baseUri, ILogger logger) + internal DefaultRegistryAPI(string registryName, Uri baseUri, ILogger logger, RegistryMode mode) { bool isAmazonECRRegistry = baseUri.IsAmazonECRRegistry(); _baseUri = baseUri; _logger = logger; - _client = CreateClient(registryName, baseUri, logger, isAmazonECRRegistry); + _client = CreateClient(registryName, baseUri, logger, isAmazonECRRegistry, mode); Manifest = new DefaultManifestOperations(_baseUri, registryName, _client, _logger); Blob = new DefaultBlobOperations(_baseUri, registryName, _client, _logger); } @@ -36,7 +36,7 @@ internal DefaultRegistryAPI(string registryName, Uri baseUri, ILogger logger) public IManifestOperations Manifest { get; } - private static HttpClient CreateClient(string registryName, Uri baseUri, ILogger logger, bool isAmazonECRRegistry = false) + private static HttpClient CreateClient(string registryName, Uri baseUri, ILogger logger, bool isAmazonECRRegistry, RegistryMode mode) { var innerHandler = new SocketsHttpHandler() { @@ -55,7 +55,7 @@ private static HttpClient CreateClient(string registryName, Uri baseUri, ILogger }; } - HttpMessageHandler clientHandler = new AuthHandshakeMessageHandler(registryName, innerHandler, logger); + HttpMessageHandler clientHandler = new AuthHandshakeMessageHandler(registryName, innerHandler, logger, mode); if (isAmazonECRRegistry) { diff --git a/src/Containers/Microsoft.NET.Build.Containers/Registry/Registry.cs b/src/Containers/Microsoft.NET.Build.Containers/Registry/Registry.cs index 21ba5d8c9271..87f1069de75d 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Registry/Registry.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/Registry/Registry.cs @@ -53,6 +53,13 @@ public RidGraphManifestPicker(string runtimeIdentifierGraphPath) } +internal enum RegistryMode +{ + Push, + Pull, + PullFromOutput +} + internal sealed class Registry { private const string DockerHubRegistry1 = "registry-1.docker.io"; @@ -70,11 +77,23 @@ internal sealed class Registry /// public string RegistryName { get; } - internal Registry(string registryName, ILogger logger, IRegistryAPI? registryAPI = null, RegistrySettings? settings = null) : - this(ContainerHelpers.TryExpandRegistryToUri(registryName), logger, registryAPI, settings) + internal Registry(string registryName, ILogger logger, RegistryMode mode, RegistrySettings? settings = null) : this( + ContainerHelpers.TryExpandRegistryToUri(registryName), logger, new RegistryApiFactory(mode), settings) { } - internal Registry(Uri baseUri, ILogger logger, IRegistryAPI? registryAPI = null, RegistrySettings? settings = null) + internal Registry(string registryName, ILogger logger, IRegistryAPI registryAPI, RegistrySettings? settings = null) : this( + ContainerHelpers.TryExpandRegistryToUri(registryName), logger, new RegistryApiFactory(registryAPI), settings) + { } + + internal Registry(Uri baseUri, ILogger logger, IRegistryAPI registryAPI, RegistrySettings? settings = null) : + this(baseUri, logger, new RegistryApiFactory(registryAPI), settings) + { } + + internal Registry(Uri baseUri, ILogger logger, RegistryMode mode, RegistrySettings? settings = null) : + this(baseUri, logger, new RegistryApiFactory(mode), settings) + { } + + private Registry(Uri baseUri, ILogger logger, RegistryApiFactory factory, RegistrySettings? settings = null) { RegistryName = DeriveRegistryName(baseUri); @@ -87,7 +106,7 @@ internal Registry(Uri baseUri, ILogger logger, IRegistryAPI? registryAPI = null, _logger = logger; _settings = settings ?? new RegistrySettings(); - _registryAPI = registryAPI ?? new DefaultRegistryAPI(RegistryName, BaseUri, logger); + _registryAPI = factory.Create(RegistryName, BaseUri, logger); } private static string DeriveRegistryName(Uri baseUri) @@ -500,4 +519,25 @@ private async Task PushAsync(BuiltImage builtImage, SourceImageReference source, _logger.LogInformation(Strings.Registry_ManifestUploaded, RegistryName); } } + + private readonly ref struct RegistryApiFactory + { + private readonly IRegistryAPI? _registryApi; + private readonly RegistryMode? _mode; + + public RegistryApiFactory(IRegistryAPI registryApi) + { + _registryApi = registryApi; + } + + public RegistryApiFactory(RegistryMode mode) + { + _mode = mode; + } + + public IRegistryAPI Create(string registryName, Uri baseUri, ILogger logger) + { + return _registryApi ?? new DefaultRegistryAPI(registryName, baseUri, logger, _mode!.Value); + } + } } diff --git a/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs b/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs index ced4b0646988..96eaa4e81df5 100644 --- a/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs +++ b/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs @@ -60,7 +60,8 @@ internal async Task ExecuteAsync(CancellationToken cancellationToken) return !Log.HasLoggedErrors; } - Registry? sourceRegistry = IsLocalPull ? null : new Registry(BaseRegistry, logger); + RegistryMode sourceRegistryMode = BaseRegistry.Equals(OutputRegistry, StringComparison.InvariantCultureIgnoreCase) ? RegistryMode.PullFromOutput : RegistryMode.Pull; + Registry? sourceRegistry = IsLocalPull ? null : new Registry(BaseRegistry, logger, sourceRegistryMode); SourceImageReference sourceImageReference = new(sourceRegistry, BaseImageName, BaseImageTag); DestinationImageReference destinationImageReference = DestinationImageReference.CreateFromSettings( diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/CreateNewImageTests.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/CreateNewImageTests.cs index e9fe7898dff5..cf25db4b0309 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/CreateNewImageTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/CreateNewImageTests.cs @@ -225,7 +225,7 @@ public async System.Threading.Tasks.Task CreateNewImage_RootlessBaseImage() var logger = loggerFactory.CreateLogger(nameof(CreateNewImage_RootlessBaseImage)); // Build a rootless base runtime image. - Registry registry = new Registry(DockerRegistryManager.LocalRegistry, logger); + Registry registry = new(DockerRegistryManager.LocalRegistry, logger, RegistryMode.Push); ImageBuilder imageBuilder = await registry.GetImageManifestAsync( DockerRegistryManager.RuntimeBaseImage, diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs index 534a4a78056d..f6648123e6d9 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs @@ -43,8 +43,8 @@ public static async Task StartAndPopulateDockerRegistry(ITestOutputHelper testOu int spawnRegistryDelay = 1000; //ms StringBuilder failureReasons = new(); - var pullRegistry = new Registry(BaseImageSource, logger); - var pushRegistry = new Registry(LocalRegistry, logger); + var pullRegistry = new Registry(BaseImageSource, logger, RegistryMode.Pull); + var pushRegistry = new Registry(LocalRegistry, logger, RegistryMode.Push); for (int spawnRegistryAttempt = 1; spawnRegistryAttempt <= spawnRegistryMaxRetry; spawnRegistryAttempt++) { diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryTests.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryTests.cs index 18638ee17b84..2066e986a2b5 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryTests.cs @@ -22,7 +22,7 @@ public async Task GetFromRegistry() { var loggerFactory = new TestLoggerFactory(_testOutput); var logger = loggerFactory.CreateLogger(nameof(GetFromRegistry)); - Registry registry = new Registry(DockerRegistryManager.LocalRegistry, logger); + Registry registry = new(DockerRegistryManager.LocalRegistry, logger, RegistryMode.Push); var ridgraphfile = ToolsetUtils.GetRuntimeGraphFilePath(); // Don't need rid graph for local registry image pulls - since we're only pushing single image manifests (not manifest lists) @@ -73,9 +73,9 @@ public async Task WriteToPrivateBasicRegistry() // login to that registry ContainerCli.LoginCommand(_testOutput, "--username", "testuser", "--password", "testpassword", registryName).Execute().Should().Pass(); // push an image to that registry using username/password - Registry localAuthed = new Registry(new Uri($"https://{registryName}"), logger, settings: new() { ParallelUploadEnabled = false, ForceChunkedUpload = true }); + Registry localAuthed = new(new Uri($"https://{registryName}"), logger, RegistryMode.Push, settings: new() { ParallelUploadEnabled = false, ForceChunkedUpload = true }); var ridgraphfile = ToolsetUtils.GetRuntimeGraphFilePath(); - Registry mcr = new Registry(DockerRegistryManager.BaseImageSource, logger); + Registry mcr = new(DockerRegistryManager.BaseImageSource, logger, RegistryMode.Pull); var sourceImage = new SourceImageReference(mcr, DockerRegistryManager.RuntimeBaseImage, DockerRegistryManager.Net6ImageTag); var destinationImage = new DestinationImageReference(localAuthed, DockerRegistryManager.RuntimeBaseImage,new[] { DockerRegistryManager.Net6ImageTag }); diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/EndToEndTests.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/EndToEndTests.cs index 9dc7db0b6586..d78b88cc211b 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/EndToEndTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/EndToEndTests.cs @@ -46,7 +46,7 @@ public async Task ApiEndToEndWithRegistryPushAndPull() // Build the image - Registry registry = new Registry(DockerRegistryManager.LocalRegistry, logger); + Registry registry = new(DockerRegistryManager.LocalRegistry, logger, RegistryMode.Push); ImageBuilder imageBuilder = await registry.GetImageManifestAsync( DockerRegistryManager.RuntimeBaseImage, @@ -93,7 +93,7 @@ public async Task ApiEndToEndWithLocalLoad() // Build the image - Registry registry = new Registry(DockerRegistryManager.LocalRegistry, logger); + Registry registry = new(DockerRegistryManager.LocalRegistry, logger, RegistryMode.Push); ImageBuilder imageBuilder = await registry.GetImageManifestAsync( DockerRegistryManager.RuntimeBaseImage, @@ -134,7 +134,7 @@ public async Task ApiEndToEndWithArchiveWritingAndLoad() // Build the image - Registry registry = new Registry(DockerRegistryManager.LocalRegistry, logger); + Registry registry = new(DockerRegistryManager.LocalRegistry, logger, RegistryMode.Push); ImageBuilder imageBuilder = await registry.GetImageManifestAsync( DockerRegistryManager.RuntimeBaseImage, @@ -555,7 +555,7 @@ public async Task CanPackageForAllSupportedContainerRIDs(string dockerPlatform, string publishDirectory = BuildLocalApp(tfm: ToolsetInfo.CurrentTargetFramework, rid: rid); // Build the image - Registry registry = new(DockerRegistryManager.BaseImageSource, logger); + Registry registry = new(DockerRegistryManager.BaseImageSource, logger, RegistryMode.Push); var isWin = rid.StartsWith("win"); ImageBuilder? imageBuilder = await registry.GetImageManifestAsync( DockerRegistryManager.RuntimeBaseImage, diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs index 0f58b21e98ec..814892354356 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs @@ -39,7 +39,7 @@ public async Task CanReadManifestFromRegistry(string fullyQualifiedContainerName containerTag ??= "latest"; ILogger logger = _loggerFactory.CreateLogger(nameof(CanReadManifestFromRegistry)); - Registry registry = new Registry(containerRegistry, logger); + Registry registry = new(containerRegistry, logger, RegistryMode.Pull); var ridgraphfile = ToolsetUtils.GetRuntimeGraphFilePath(); diff --git a/src/Tests/Microsoft.NET.Build.Containers.UnitTests/AuthHandshakeMessageHandlerTests.cs b/src/Tests/Microsoft.NET.Build.Containers.UnitTests/AuthHandshakeMessageHandlerTests.cs new file mode 100644 index 000000000000..a50b816bdb91 --- /dev/null +++ b/src/Tests/Microsoft.NET.Build.Containers.UnitTests/AuthHandshakeMessageHandlerTests.cs @@ -0,0 +1,32 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Microsoft.NET.Build.Containers.UnitTests +{ + public class AuthHandshakeMessageHandlerTests + { + [Theory] + [InlineData("SDK_CONTAINER_REGISTRY_UNAME", "SDK_CONTAINER_REGISTRY_PWORD", (int)RegistryMode.Push)] + [InlineData("SDK_CONTAINER_PUSH_REGISTRY_UNAME", "SDK_CONTAINER_PUSH_REGISTRY_PWORD", (int)RegistryMode.Push)] + [InlineData("SDK_CONTAINER_PULL_REGISTRY_UNAME", "SDK_CONTAINER_PULL_REGISTRY_PWORD", (int)RegistryMode.Pull)] + [InlineData("SDK_CONTAINER_PULL_REGISTRY_UNAME", "SDK_CONTAINER_PULL_REGISTRY_PWORD", (int)RegistryMode.PullFromOutput)] + [InlineData("SDK_CONTAINER_REGISTRY_UNAME", "SDK_CONTAINER_REGISTRY_PWORD", (int)RegistryMode.PullFromOutput)] + public void GetDockerCredentialsFromEnvironment_ReturnsCorrectValues(string unameVarName, string pwordVarName, int mode) + { + string? originalUnameValue = Environment.GetEnvironmentVariable(unameVarName); + string? originalPwordValue = Environment.GetEnvironmentVariable(pwordVarName); + + Environment.SetEnvironmentVariable(unameVarName, "uname"); + Environment.SetEnvironmentVariable(pwordVarName, "pword"); + + (string? credU, string? credP) = AuthHandshakeMessageHandler.GetDockerCredentialsFromEnvironment((RegistryMode)mode); + + Assert.Equal("uname", credU); + Assert.Equal("pword", credP); + + // restore env variable values + Environment.SetEnvironmentVariable(unameVarName, originalUnameValue); + Environment.SetEnvironmentVariable(pwordVarName, originalPwordValue); + } + } +} diff --git a/src/Tests/Microsoft.NET.Build.Containers.UnitTests/RegistryTests.cs b/src/Tests/Microsoft.NET.Build.Containers.UnitTests/RegistryTests.cs index 3c3fba3d2cd6..87f81f3b85e5 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.UnitTests/RegistryTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.UnitTests/RegistryTests.cs @@ -30,7 +30,7 @@ public void Dispose() public void CheckIfGoogleArtifactRegistry(string registryName, bool isECR) { ILogger logger = _loggerFactory.CreateLogger(nameof(CheckIfGoogleArtifactRegistry)); - Registry registry = new Registry(registryName, logger); + Registry registry = new(registryName, logger, RegistryMode.Push); Assert.Equal(isECR, registry.IsGoogleArtifactRegistry); } @@ -38,7 +38,7 @@ public void CheckIfGoogleArtifactRegistry(string registryName, bool isECR) public void DockerIoAlias() { ILogger logger = _loggerFactory.CreateLogger(nameof(DockerIoAlias)); - Registry registry = new Registry("docker.io", logger); + Registry registry = new("docker.io", logger, RegistryMode.Push); Assert.True(registry.IsDockerHub); Assert.Equal("docker.io", registry.RegistryName); Assert.Equal("registry-1.docker.io", registry.BaseUri.Host); From 80e3001293fd53ebe14d9579bc8730248483ca0e Mon Sep 17 00:00:00 2001 From: MichalPavlik Date: Wed, 12 Jun 2024 13:44:30 +0200 Subject: [PATCH 005/209] Fixed compilation error --- .../RegistryTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs index 8b848ba6e524..8e25c9b13724 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/RegistryTests.cs @@ -39,7 +39,7 @@ public async Task CanReadManifestFromRegistry(string fullyQualifiedContainerName containerTag ??= "latest"; ILogger logger = _loggerFactory.CreateLogger(nameof(CanReadManifestFromRegistry)); - Registry registry = new(registryName, logger, RegistryMode.Pull); + Registry registry = new(containerRegistry, logger, RegistryMode.Pull); var ridgraphfile = ToolsetUtils.GetRuntimeGraphFilePath(); From c1b0caafbf0e5a7de4ee0767c379b784d08a63a1 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Tue, 16 Jul 2024 22:16:04 +0000 Subject: [PATCH 006/209] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-runtime build 20240716.10 Microsoft.NET.HostModel , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.DotNetHostResolver , VS.Redist.Common.NetCore.SharedFramework.x64.6.0 , VS.Redist.Common.NetCore.TargetingPack.x64.6.0 From Version 6.0.32-servicing.24314.7 -> To Version 6.0.33-servicing.24366.10 --- NuGet.config | 12 ++---------- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 10 +++++----- 3 files changed, 21 insertions(+), 29 deletions(-) diff --git a/NuGet.config b/NuGet.config index 54d208e1bd48..d981ebb9c7b7 100644 --- a/NuGet.config +++ b/NuGet.config @@ -16,11 +16,7 @@ - - - - - + @@ -68,11 +64,7 @@ - - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0a361a6ec06b..8129f8d4b183 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -30,41 +30,41 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating 89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + 6c636980f730a30c3f5352cff80ce035ae53f016 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + 6c636980f730a30c3f5352cff80ce035ae53f016 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + 6c636980f730a30c3f5352cff80ce035ae53f016 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + 6c636980f730a30c3f5352cff80ce035ae53f016 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + 6c636980f730a30c3f5352cff80ce035ae53f016 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 189fbbd88d97dd6d65515ba2da05b62eab4e5039 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + 6c636980f730a30c3f5352cff80ce035ae53f016 https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e77011b31a3e5c47d931248a64b47f9b2d47853d + 6c636980f730a30c3f5352cff80ce035ae53f016 https://github.com/dotnet/msbuild diff --git a/eng/Versions.props b/eng/Versions.props index 50f9fa6e0055..02a78e3093e4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -44,13 +44,13 @@ - 6.0.32 - 6.0.32-servicing.24314.7 - 6.0.32 + 6.0.33 + 6.0.33-servicing.24366.10 + 6.0.33 $(MicrosoftNETCoreAppRuntimewinx64PackageVersion) 6.0.0 - 6.0.32 - 6.0.32-servicing.24314.7 + 6.0.33 + 6.0.33-servicing.24366.10 6.0.0-preview.7.21363.9 6.0.1 From 124f99ebb239fccc53037aabf7f96d30035b2521 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Tue, 16 Jul 2024 22:58:33 +0000 Subject: [PATCH 007/209] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-runtime build 20240716.12 Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.DotNetHostResolver , Microsoft.NETCore.Platforms , VS.Redist.Common.NetCore.SharedFramework.x64.8.0 , VS.Redist.Common.NetCore.TargetingPack.x64.8.0 From Version 8.0.7-servicing.24313.11 -> To Version 8.0.8-servicing.24366.12 Dependency coherency updates Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100 From Version 8.0.7 -> To Version 8.0.8 (parent: Microsoft.NETCore.App.Runtime.win-x64 --- NuGet.config | 8 +++----- eng/Version.Details.xml | 40 ++++++++++++++++++++-------------------- eng/Versions.props | 14 +++++++------- 3 files changed, 30 insertions(+), 32 deletions(-) diff --git a/NuGet.config b/NuGet.config index d8dc69e028a6..3e4e690d5199 100644 --- a/NuGet.config +++ b/NuGet.config @@ -3,11 +3,7 @@ - - - - - + @@ -30,6 +26,7 @@ + @@ -74,6 +71,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 77a840e8574b..0770d9e167bf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -14,46 +14,46 @@ 5cab53780897ef7a8e212e10732af54c0a7e597f - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 2aade6beb02ea367fd97c4070a4198802fe61c03 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://github.com/dotnet/emsdk - a64772f521c578bc9925578b1384d3a08a02d31d + e92f92efe5854b6fe013787830b59166cb9b4ed9 https://github.com/dotnet/msbuild @@ -200,9 +200,9 @@ https://github.com/microsoft/vstest aa59400b11e1aeee2e8af48928dbd48748a8bef9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index a1b99a522747..7af4264bd80a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -48,18 +48,18 @@ - 8.0.7 - 8.0.7-servicing.24313.11 - 8.0.7 + 8.0.8 + 8.0.8-servicing.24366.12 + 8.0.8 $(MicrosoftNETCoreAppRuntimewinx64PackageVersion) 8.0.1 - 8.0.7 - 8.0.7-servicing.24313.11 + 8.0.8 + 8.0.8-servicing.24366.12 8.0.0 8.0.0 8.0.1 8.0.0 - 8.0.7 + 8.0.8 8.0.0 8.0.0 8.0.7 @@ -222,7 +222,7 @@ - 8.0.7 + 8.0.8 $(MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion) 8.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-rtm|-[A-z]*\.*\d*`)) From 310c7efc008bffcf79a5e3855462d24c140a3846 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Tue, 16 Jul 2024 22:58:35 +0000 Subject: [PATCH 008/209] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-runtime build 20240716.12 Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.DotNetHostResolver , Microsoft.NETCore.Platforms , VS.Redist.Common.NetCore.SharedFramework.x64.8.0 , VS.Redist.Common.NetCore.TargetingPack.x64.8.0 From Version 8.0.7-servicing.24313.11 -> To Version 8.0.8-servicing.24366.12 Dependency coherency updates Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100 From Version 8.0.7 -> To Version 8.0.8 (parent: Microsoft.NETCore.App.Runtime.win-x64 --- NuGet.config | 8 +++----- eng/Version.Details.xml | 40 ++++++++++++++++++++-------------------- eng/Versions.props | 14 +++++++------- 3 files changed, 30 insertions(+), 32 deletions(-) diff --git a/NuGet.config b/NuGet.config index 50ff2df1fefa..e56689a0fc8b 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,11 +4,7 @@ - - - - - + @@ -30,6 +26,7 @@ + @@ -77,6 +74,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2cb20cb0a313..0f43e61dd8bf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -14,46 +14,46 @@ 3ae74f2f22d5054d46472889a266e13971651025 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 2aade6beb02ea367fd97c4070a4198802fe61c03 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c - + https://github.com/dotnet/emsdk - a64772f521c578bc9925578b1384d3a08a02d31d + e92f92efe5854b6fe013787830b59166cb9b4ed9 https://github.com/dotnet/msbuild @@ -200,9 +200,9 @@ https://github.com/microsoft/vstest c4d80397805bec06b354d20aeb1773e243c6add0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 + 08338fcaa5c9b9a8190abb99222fed12aaba956c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index b3a81a87e4a0..670749c59f40 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -50,19 +50,19 @@ - 8.0.7 - 8.0.7-servicing.24313.11 - 8.0.7 + 8.0.8 + 8.0.8-servicing.24366.12 + 8.0.8 $(MicrosoftNETCoreAppRuntimewinx64PackageVersion) 8.0.1 - 8.0.7 - 8.0.7-servicing.24313.11 + 8.0.8 + 8.0.8-servicing.24366.12 8.0.0 $(MicrosoftExtensionsDependencyModelPackageVersion) 8.0.0 8.0.1 8.0.0 - 8.0.7 + 8.0.8 8.0.0 8.0.0 8.0.7 @@ -226,7 +226,7 @@ - 8.0.7 + 8.0.8 $(MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion) 8.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-rtm|-[A-z]*\.*\d*`)) From 765486429efd42e3c35ccf3ca0f5d8f1b5173ed2 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Tue, 16 Jul 2024 23:37:53 +0000 Subject: [PATCH 009/209] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-templating build 20240716.5 Microsoft.DotNet.Common.ItemTemplates , Microsoft.DotNet.Common.ProjectTemplates.6.0 , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Cli , Microsoft.TemplateEngine.Orchestrator.RunnableProjects , Microsoft.TemplateEngine.Utils , Microsoft.TemplateSearch.Common From Version 6.0.424 -> To Version 6.0.425 --- NuGet.config | 12 ++---------- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 10 +++++----- 3 files changed, 21 insertions(+), 29 deletions(-) diff --git a/NuGet.config b/NuGet.config index d981ebb9c7b7..5f5588201736 100644 --- a/NuGet.config +++ b/NuGet.config @@ -19,11 +19,7 @@ - - - - - + @@ -50,11 +46,7 @@ - - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8129f8d4b183..4ec1b90d9d71 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,34 +1,34 @@ - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc + 8413a0dffce5dd2f6d53d6156e25f3bf649da60b - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc + 8413a0dffce5dd2f6d53d6156e25f3bf649da60b - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc + 8413a0dffce5dd2f6d53d6156e25f3bf649da60b - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc + 8413a0dffce5dd2f6d53d6156e25f3bf649da60b - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc + 8413a0dffce5dd2f6d53d6156e25f3bf649da60b - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc + 8413a0dffce5dd2f6d53d6156e25f3bf649da60b - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc + 8413a0dffce5dd2f6d53d6156e25f3bf649da60b https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 02a78e3093e4..8a4823310a47 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -118,11 +118,11 @@ - 6.0.424-rtm.24314.8 - 6.0.424 - 6.0.424 - 6.0.424 - 6.0.424 + 6.0.425-rtm.24366.5 + 6.0.425 + 6.0.425 + 6.0.425 + 6.0.425 From c7b2e9c262d49c8184d339abd62a287f7146421b Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Wed, 17 Jul 2024 03:25:53 +0000 Subject: [PATCH 010/209] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop build 20240716.6 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.6.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.6.0 From Version 6.0.32 -> To Version 6.0.33 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop From Version 6.0.32-servicing.24314.4 -> To Version 6.0.33-servicing.24366.5 (parent: Microsoft.WindowsDesktop.App.Runtime.win-x64 --- NuGet.config | 12 ++---------- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 4 ++-- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/NuGet.config b/NuGet.config index 5f5588201736..5f46ecfb5a19 100644 --- a/NuGet.config +++ b/NuGet.config @@ -22,11 +22,7 @@ - - - - - + @@ -59,11 +55,7 @@ - - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4ec1b90d9d71..0736b0118600 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -170,25 +170,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 70ae3df4a6f3c92fb6b315afc405edd10ff38579 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - ef2ca68feb305bd9ebc3934b8488526caee3d118 + db4e5a36567b85765753af097e878d894a3552c9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - ef2ca68feb305bd9ebc3934b8488526caee3d118 + db4e5a36567b85765753af097e878d894a3552c9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - ef2ca68feb305bd9ebc3934b8488526caee3d118 + db4e5a36567b85765753af097e878d894a3552c9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - ef2ca68feb305bd9ebc3934b8488526caee3d118 + db4e5a36567b85765753af097e878d894a3552c9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 798cc6d4922db482f84fb72a8244f0da898bc5d6 + b660c1e83039451abe9d9190a7aabe87c03fd7ae https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 8a4823310a47..6ea18fbc8812 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -151,11 +151,11 @@ - 6.0.32-servicing.24314.4 + 6.0.33-servicing.24366.5 - 6.0.32-servicing.24314.6 + 6.0.33-servicing.24366.6 From d9c85c09dcc689d637b3cd3bd46a67b677ac0fde Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Wed, 17 Jul 2024 07:05:56 +0000 Subject: [PATCH 011/209] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop build 20240716.8 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.8.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.8.0 From Version 8.0.7 -> To Version 8.0.8 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop From Version 8.0.7-servicing.24313.7 -> To Version 8.0.8-servicing.24366.7 (parent: Microsoft.WindowsDesktop.App.Ref --- NuGet.config | 12 ++---------- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 2 +- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/NuGet.config b/NuGet.config index e56689a0fc8b..b9c3506ba098 100644 --- a/NuGet.config +++ b/NuGet.config @@ -32,11 +32,7 @@ - - - - - + @@ -82,11 +78,7 @@ - - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0f43e61dd8bf..f929032748c1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -220,25 +220,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 5535e31a712343a63f5d7d796cd874e563e5ac14 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 28ae95bc8703be1ebc194391b03b6477cf59bed2 + 1526afd4eae1d862d586402ef8e005151a919d52 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 28ae95bc8703be1ebc194391b03b6477cf59bed2 + 1526afd4eae1d862d586402ef8e005151a919d52 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 28ae95bc8703be1ebc194391b03b6477cf59bed2 + 1526afd4eae1d862d586402ef8e005151a919d52 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 28ae95bc8703be1ebc194391b03b6477cf59bed2 + 1526afd4eae1d862d586402ef8e005151a919d52 - + https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 43bb8cc831c2658e1117415019264bfe6f644f94 + 883fc207bb50622d4458ff09ae6a62548783826a https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 670749c59f40..be55cc9ba729 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -182,7 +182,7 @@ - 8.0.7-servicing.24313.7 + 8.0.8-servicing.24366.7 From 29d146c103146600ac4a3aed4ff538f121a5ce3c Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Wed, 17 Jul 2024 07:06:00 +0000 Subject: [PATCH 012/209] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop build 20240716.8 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.8.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.8.0 From Version 8.0.7 -> To Version 8.0.8 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop From Version 8.0.7-servicing.24313.7 -> To Version 8.0.8-servicing.24366.7 (parent: Microsoft.WindowsDesktop.App.Ref --- NuGet.config | 12 ++---------- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 2 +- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/NuGet.config b/NuGet.config index 3e4e690d5199..7bf3302e13e1 100644 --- a/NuGet.config +++ b/NuGet.config @@ -32,11 +32,7 @@ - - - - - + @@ -79,11 +75,7 @@ - - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0770d9e167bf..758fe08914d0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -220,25 +220,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 5535e31a712343a63f5d7d796cd874e563e5ac14 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 28ae95bc8703be1ebc194391b03b6477cf59bed2 + 1526afd4eae1d862d586402ef8e005151a919d52 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 28ae95bc8703be1ebc194391b03b6477cf59bed2 + 1526afd4eae1d862d586402ef8e005151a919d52 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 28ae95bc8703be1ebc194391b03b6477cf59bed2 + 1526afd4eae1d862d586402ef8e005151a919d52 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 28ae95bc8703be1ebc194391b03b6477cf59bed2 + 1526afd4eae1d862d586402ef8e005151a919d52 - + https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 43bb8cc831c2658e1117415019264bfe6f644f94 + 883fc207bb50622d4458ff09ae6a62548783826a https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 7af4264bd80a..8aba51d64e38 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -178,7 +178,7 @@ - 8.0.7-servicing.24313.7 + 8.0.8-servicing.24366.7 From 1e3aac65ed53f79583397de0e9dcd370105b5283 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Thu, 18 Jul 2024 18:36:20 +0000 Subject: [PATCH 013/209] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore build 20240718.7 dotnet-dev-certs , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.Analyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.6.0 From Version 6.0.32-servicing.24314.5 -> To Version 6.0.33-servicing.24368.7 --- NuGet.config | 12 ++------ eng/Version.Details.xml | 64 ++++++++++++++++++++--------------------- eng/Versions.props | 12 ++++---- 3 files changed, 40 insertions(+), 48 deletions(-) diff --git a/NuGet.config b/NuGet.config index 5f46ecfb5a19..f7d1579263a6 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,11 +4,7 @@ - - - - - + @@ -45,11 +41,7 @@ - - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0736b0118600..1d27858a46d7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -113,13 +113,13 @@ https://github.com/dotnet/roslyn 41a5af9d2c459a06c0795bf21a1c046200f375bf - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f https://dev.azure.com/devdiv/DevDiv/_git/NuGet-NuGet.Client-Trusted @@ -190,46 +190,46 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-wpf b660c1e83039451abe9d9190a7aabe87c03fd7ae - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f https://github.com/dotnet/razor-compiler @@ -246,21 +246,21 @@ 503deb302b09bbd0ee3cb64e46117fa2d31af442 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - fedc545ce86467b7d3413d906f1ab02fb3db12ff + d917e14cc49f16d7190195501fd43fa4835d274f https://github.com/aspnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 6ea18fbc8812..4e6b825eb593 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -139,12 +139,12 @@ - 6.0.32-servicing.24314.5 - 6.0.32 - 6.0.32-servicing.24314.5 - 6.0.32-servicing.24314.5 - 6.0.32-servicing.24314.5 - 6.0.32 + 6.0.33-servicing.24368.7 + 6.0.33 + 6.0.33-servicing.24368.7 + 6.0.33-servicing.24368.7 + 6.0.33-servicing.24368.7 + 6.0.33 6.0.3-1.22213.1 6.0.3-1.22213.1 6.0.3-1.22213.1 From 2a6a4da77325ef8ea56ce5b3eb1a4ee8fa4f842d Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Sat, 20 Jul 2024 00:32:31 +0000 Subject: [PATCH 014/209] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore build 20240719.8 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.8.0 From Version 8.0.7-servicing.24314.2 -> To Version 8.0.8-servicing.24369.8 --- NuGet.config | 12 ++----- eng/Version.Details.xml | 72 ++++++++++++++++++++--------------------- eng/Versions.props | 16 ++++----- 3 files changed, 46 insertions(+), 54 deletions(-) diff --git a/NuGet.config b/NuGet.config index 7bf3302e13e1..631ac8ba8501 100644 --- a/NuGet.config +++ b/NuGet.config @@ -9,11 +9,7 @@ - - - - - + @@ -57,11 +53,7 @@ - - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 758fe08914d0..e2495fb3e9dd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -111,13 +111,13 @@ https://github.com/dotnet/roslyn 2975b0a592ac27549e1b9d0e786243f9cb569316 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 https://dev.azure.com/devdiv/DevDiv/_git/NuGet-NuGet.Client-Trusted @@ -240,50 +240,50 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-wpf 883fc207bb50622d4458ff09ae6a62548783826a - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 https://github.com/dotnet/razor @@ -298,21 +298,21 @@ https://github.com/dotnet/razor d135dd8d2ec1c2fbdee220e8656b308694e17a4b - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 https://github.com/dotnet/xdt @@ -429,9 +429,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 5535e31a712343a63f5d7d796cd874e563e5ac14 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 8aba51d64e38..84b7dbd0378f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,7 +62,7 @@ 8.0.8 8.0.0 8.0.0 - 8.0.7 + 8.0.8 8.0.0 8.0.0 8.0.0 @@ -162,13 +162,13 @@ - 8.0.7 - 8.0.7-servicing.24314.2 - 8.0.7-servicing.24314.2 - 8.0.7-servicing.24314.2 - 8.0.7-servicing.24314.2 - 8.0.7-servicing.24314.2 - 8.0.7 + 8.0.8 + 8.0.8-servicing.24369.8 + 8.0.8-servicing.24369.8 + 8.0.8-servicing.24369.8 + 8.0.8-servicing.24369.8 + 8.0.8-servicing.24369.8 + 8.0.8 From ad1507e7d8b8c59b0dfd0eb4ca8935f02e5922ef Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Sat, 20 Jul 2024 00:32:34 +0000 Subject: [PATCH 015/209] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore build 20240719.8 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.8.0 From Version 8.0.7-servicing.24314.2 -> To Version 8.0.8-servicing.24369.8 --- NuGet.config | 12 ++----- eng/Version.Details.xml | 72 ++++++++++++++++++++--------------------- eng/Versions.props | 16 ++++----- 3 files changed, 46 insertions(+), 54 deletions(-) diff --git a/NuGet.config b/NuGet.config index b9c3506ba098..c84fa6fcc4ab 100644 --- a/NuGet.config +++ b/NuGet.config @@ -10,11 +10,7 @@ - - - - - + @@ -59,11 +55,7 @@ - - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f929032748c1..020e4d215177 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -111,13 +111,13 @@ https://github.com/dotnet/roslyn 1f9b00a8865f2b30d14ff2012b00f4ce5ddc1086 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 https://github.com/nuget/nuget.client @@ -240,50 +240,50 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-wpf 883fc207bb50622d4458ff09ae6a62548783826a - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 https://github.com/dotnet/razor @@ -298,21 +298,21 @@ https://github.com/dotnet/razor 459fb2aa78c5e16dfc1eb25f078ead54d3a88fb5 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 https://github.com/dotnet/xdt @@ -429,9 +429,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 5535e31a712343a63f5d7d796cd874e563e5ac14 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 2f1db20456007c9515068a35a65afdf99af70bc6 + 954f61dd38b33caa2b736c73530bd5a294174437 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index be55cc9ba729..818a5f04495f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -65,7 +65,7 @@ 8.0.8 8.0.0 8.0.0 - 8.0.7 + 8.0.8 8.0.0 8.0.0 8.0.0 @@ -166,13 +166,13 @@ - 8.0.7 - 8.0.7-servicing.24314.2 - 8.0.7-servicing.24314.2 - 8.0.7-servicing.24314.2 - 8.0.7-servicing.24314.2 - 8.0.7-servicing.24314.2 - 8.0.7 + 8.0.8 + 8.0.8-servicing.24369.8 + 8.0.8-servicing.24369.8 + 8.0.8-servicing.24369.8 + 8.0.8-servicing.24369.8 + 8.0.8-servicing.24369.8 + 8.0.8 From 300f88ecd54ddd45df89ac55c71d4d1bc131c202 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Mon, 22 Jul 2024 13:58:48 -0700 Subject: [PATCH 016/209] Update the version of System.Formats.Asn1 --- eng/Version.Details.xml | 4 ++++ eng/Versions.props | 1 + src/Cli/dotnet/dotnet.csproj | 1 + src/Layout/tool_fsharp/tool_fsc.csproj | 1 + 4 files changed, 7 insertions(+) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 74bed2ae72da..17cbf3ed93ce 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -158,6 +158,10 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime c76ac565499f3e7c657126d46c00b67a0d74832c + + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime + c76ac565499f3e7c657126d46c00b67a0d74832c + https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 diff --git a/eng/Versions.props b/eng/Versions.props index 909baafb17b5..9d3984ac7bd4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -50,6 +50,7 @@ 6.0.32-servicing.24314.7 6.0.0-preview.7.21363.9 6.0.1 + 6.0.1 diff --git a/src/Cli/dotnet/dotnet.csproj b/src/Cli/dotnet/dotnet.csproj index 3e433e3ea36e..3c8ca1b648a6 100644 --- a/src/Cli/dotnet/dotnet.csproj +++ b/src/Cli/dotnet/dotnet.csproj @@ -95,6 +95,7 @@ + diff --git a/src/Layout/tool_fsharp/tool_fsc.csproj b/src/Layout/tool_fsharp/tool_fsc.csproj index 1a665e87c558..95d276e73adb 100644 --- a/src/Layout/tool_fsharp/tool_fsc.csproj +++ b/src/Layout/tool_fsharp/tool_fsc.csproj @@ -8,6 +8,7 @@ + Date: Mon, 29 Jul 2024 19:01:48 +0000 Subject: [PATCH 017/209] Merged PR 41386: [internal/release/6.0.4xx] Update dependencies from dnceng/internal/dotnet-aspnetcore This pull request updates the following dependencies [marker]: <> (Begin:1963f8a1-5df7-4929-7e1e-08da65ba3032) ## From https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - **Subscription**: 1963f8a1-5df7-4929-7e1e-08da65ba3032 - **Build**: 20240729.5 - **Date Produced**: July 29, 2024 6:27:06 PM UTC - **Commit**: f0f9de5692adf1c0576de062f93c6ab7b176433f - **Branch**: refs/heads/internal/release/6.0 [DependencyUpdate]: <> (Begin) - **Updates**: - **dotnet-dev-certs**: [from 6.0.33-servicing.24368.7 to 6.0.33-servicing.24379.5][1] - **dotnet-user-secrets**: [from 6.0.33-servicing.24368.7 to 6.0.33-servicing.24379.5][1] - **Microsoft.AspNetCore.Analyzers**: [from 6.0.33-servicing.24368.7 to 6.0.33-servicing.24379.5][1] - **Microsoft.AspNetCore.App.Ref**: [from 6.0.33 to 6.0.33][1] - **Microsoft.AspNetCore.App.Ref.Internal**: [from 6.0.33-servicing.24368.7 to 6.0.33-servicing.24379.5][1] - **Microsoft.AspNetCore.App.Runtime.win-x64**: [from 6.0.33 to 6.0.33][1] - **Microsoft.AspNetCore.Authorization**: [from 6.0.33 to 6.0.33][1] - **Microsoft.AspNetCore.Components.Analyzers**: [from 6.0.33 to 6.0.33][1] - **Microsoft.AspNetCore.Components.Web**: [from 6.0.33 to 6.0.33][1] - **Microsoft.AspNetCore.DeveloperCertificates.XPlat**: [from 6.0.33-servicing.24368.7 to 6.0.33-servicing.24379.5][1] - **Microsoft.AspNetCore.Mvc.Analyzers**: [from 6.0.33-servicing.24368.7 to 6.0.33-servicing.24379.5][1] - **Microsoft.AspNetCore.Mvc.Api.Analyzers**: [from 6.0.33-servicing.24368.7 to 6.0.33-servicing.24379.5][1] - **Microsoft.AspNetCore.TestHost**: [from 6.0.33 to 6.0.33][1] - **Microsoft.Extensions.FileProviders.Embedded**: [from 6.0.33 to 6.0.33][1] - **Microsoft.JSInterop**: [from 6.0.33 to 6.0.33][1] - **VS.Redist.Common.AspNetCore.SharedFramework.x64.6.0**: [from 6.0.33-servicing.24368.7 to 6.0.33-servicing.24379.5][1] [1]: https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore/branches?baseVersion=GCd917e14cc49f16d7190195501fd43fa4835d274f&targetVersion=GCf0f9de5692adf1c0576de062f93c6ab7b176433f&_a=files [DependencyUpdate]: <> (End) [marker]: <> (End:1963f8a1-5df7-4929-7e1e-08da65ba3032) --- NuGet.config | 16 ++++++++++++-- eng/Version.Details.xml | 48 ++++++++++++++++++++--------------------- eng/Versions.props | 8 +++---- 3 files changed, 42 insertions(+), 30 deletions(-) diff --git a/NuGet.config b/NuGet.config index f7d1579263a6..fe2d38e006bd 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -16,9 +16,15 @@ + + + + + + @@ -38,15 +44,21 @@ + + + - + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1d27858a46d7..5859c0fb7f9c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -113,13 +113,13 @@ https://github.com/dotnet/roslyn 41a5af9d2c459a06c0795bf21a1c046200f375bf - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f https://dev.azure.com/devdiv/DevDiv/_git/NuGet-NuGet.Client-Trusted @@ -192,44 +192,44 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f https://github.com/dotnet/razor-compiler @@ -248,19 +248,19 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d917e14cc49f16d7190195501fd43fa4835d274f + f0f9de5692adf1c0576de062f93c6ab7b176433f https://github.com/aspnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 4e6b825eb593..07d6c29eb7b4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -139,11 +139,11 @@ - 6.0.33-servicing.24368.7 + 6.0.33-servicing.24379.5 6.0.33 - 6.0.33-servicing.24368.7 - 6.0.33-servicing.24368.7 - 6.0.33-servicing.24368.7 + 6.0.33-servicing.24379.5 + 6.0.33-servicing.24379.5 + 6.0.33-servicing.24379.5 6.0.33 6.0.3-1.22213.1 6.0.3-1.22213.1 From 123e5060cf23186649e048e0b8525958e8998531 Mon Sep 17 00:00:00 2001 From: Manodasan Wignarajah Date: Thu, 8 Aug 2024 01:57:57 -0700 Subject: [PATCH 018/209] Add CompilerVisibleProperty needed for analyzer in Windows SDK projection package and set defaults. --- .../targets/Microsoft.NET.Windows.targets | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets index 79f6b34f4c26..0ecc332e49cb 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets @@ -45,6 +45,24 @@ Copyright (c) .NET Foundation. All rights reserved. $(TargetPlatformVersion) + + + true + true + true + 1 + + + + + + + + + + + + From dcb9542ae3c712da6ad36c33573c33a5d5e4b5ba Mon Sep 17 00:00:00 2001 From: Manodasan Wignarajah Date: Thu, 8 Aug 2024 01:57:57 -0700 Subject: [PATCH 019/209] Add CompilerVisibleProperty needed for analyzer in Windows SDK projection package and set defaults. --- .../targets/Microsoft.NET.Windows.targets | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets index aae3af73c3bb..92b7133c73c0 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets @@ -45,6 +45,24 @@ Copyright (c) .NET Foundation. All rights reserved. $(TargetPlatformVersion) + + + true + true + true + 1 + + + + + + + + + + + + From 9d745e52d4d86da00d47050e4e2d85a455edd421 Mon Sep 17 00:00:00 2001 From: Manodasan Wignarajah Date: Thu, 8 Aug 2024 01:57:57 -0700 Subject: [PATCH 020/209] Add CompilerVisibleProperty needed for analyzer in Windows SDK projection package and set defaults. --- .../targets/Microsoft.NET.Windows.targets | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets index aae3af73c3bb..92b7133c73c0 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets @@ -45,6 +45,24 @@ Copyright (c) .NET Foundation. All rights reserved. $(TargetPlatformVersion) + + + true + true + true + 1 + + + + + + + + + + + + From bc2eafb421133ced7ed21f163c7cbfd2cafa4873 Mon Sep 17 00:00:00 2001 From: Manodasan Wignarajah Date: Tue, 13 Aug 2024 18:05:01 -0700 Subject: [PATCH 021/209] Scope setting warning level to when AOT is enabled. --- .../targets/Microsoft.NET.Windows.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets index 92b7133c73c0..97cf7699cfb4 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets @@ -50,7 +50,7 @@ Copyright (c) .NET Foundation. All rights reserved. true true true - 1 + 1 From 3a86df610d2c34a505031a90df240d2ed6cd44cd Mon Sep 17 00:00:00 2001 From: Manodasan Wignarajah Date: Tue, 13 Aug 2024 18:05:01 -0700 Subject: [PATCH 022/209] Scope setting warning level to when AOT is enabled. --- .../targets/Microsoft.NET.Windows.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets index 92b7133c73c0..97cf7699cfb4 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets @@ -50,7 +50,7 @@ Copyright (c) .NET Foundation. All rights reserved. true true true - 1 + 1 From f84eaa21b3f1cedcb4611445b241d1571cf210a3 Mon Sep 17 00:00:00 2001 From: Manodasan Wignarajah Date: Tue, 13 Aug 2024 18:19:27 -0700 Subject: [PATCH 023/209] Drop setting the warning level on .NET 6 to default to info diagnostics --- .../targets/Microsoft.NET.Windows.targets | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets index 0ecc332e49cb..0736faf9dd60 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets @@ -50,7 +50,6 @@ Copyright (c) .NET Foundation. All rights reserved. true true true - 1 From 3ece0dfd285dee756b75806bbc5951c813ff4f70 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 08:29:14 -0700 Subject: [PATCH 024/209] [release/8.0.3xx] Update dependencies from dotnet/arcade (#42725) Co-authored-by: dotnet-maestro[bot] --- NuGet.config | 10 ++++++++++ eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- global.json | 4 ++-- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/NuGet.config b/NuGet.config index 4b8133d4d720..36e0a24c0c43 100644 --- a/NuGet.config +++ b/NuGet.config @@ -34,6 +34,11 @@ + + + + + @@ -91,6 +96,11 @@ + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5a07e1bc30b1..bfaa6069e072 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -487,22 +487,22 @@ - + https://github.com/dotnet/arcade - 1e2be7464703499cf98e20536fb4da4218c8fce1 + 770e16f44e6727d0efe1168e62279a399cc92edd - + https://github.com/dotnet/arcade - 1e2be7464703499cf98e20536fb4da4218c8fce1 + 770e16f44e6727d0efe1168e62279a399cc92edd - + https://github.com/dotnet/arcade - 1e2be7464703499cf98e20536fb4da4218c8fce1 + 770e16f44e6727d0efe1168e62279a399cc92edd - + https://github.com/dotnet/arcade - 1e2be7464703499cf98e20536fb4da4218c8fce1 + 770e16f44e6727d0efe1168e62279a399cc92edd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 7a908cda3d0a..08593f4c1fa5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -36,7 +36,7 @@ 7.0.0 4.0.0 7.0.0 - 8.0.0-beta.24376.1 + 8.0.0-beta.24412.1 7.0.0-preview.22423.2 8.0.0 4.3.0 @@ -212,7 +212,7 @@ 6.12.0 6.1.0 - 8.0.0-beta.24376.1 + 8.0.0-beta.24412.1 4.18.4 1.3.2 8.0.0-beta.23607.1 diff --git a/global.json b/global.json index 0e93bd4c6aed..847214b29c41 100644 --- a/global.json +++ b/global.json @@ -14,7 +14,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24376.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24376.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24412.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24412.1" } } From ff40338f127885e73dc8e8259c51d13dc5d39595 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 14 Aug 2024 18:07:08 +0000 Subject: [PATCH 025/209] Update dependencies from https://github.com/dotnet/templating build 20240814.3 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 8.0.109-servicing.24407.3 -> To Version 8.0.109-servicing.24414.3 --- NuGet.config | 12 +++++++++++- eng/Version.Details.xml | 10 +++++----- eng/Versions.props | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/NuGet.config b/NuGet.config index b4a89c54b15f..0006738383cd 100644 --- a/NuGet.config +++ b/NuGet.config @@ -34,6 +34,11 @@ + + + + + @@ -41,7 +46,7 @@ - + @@ -88,6 +93,11 @@ + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c4e03065e721..02b9db58003e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,15 +3,15 @@ https://github.com/dotnet/templating - 4a85a62de10b701a26b9393b2249ffd9ad85a23f + b8bd28466fc57e72e9dd0beb985985488c39d37b - + https://github.com/dotnet/templating - 4a85a62de10b701a26b9393b2249ffd9ad85a23f + b8bd28466fc57e72e9dd0beb985985488c39d37b - + https://github.com/dotnet/templating - 4a85a62de10b701a26b9393b2249ffd9ad85a23f + b8bd28466fc57e72e9dd0beb985985488c39d37b diff --git a/eng/Versions.props b/eng/Versions.props index de4e730b24d4..f424b3a2d5bf 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -142,7 +142,7 @@ $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 8.0.109-servicing.24407.3 + 8.0.109-servicing.24414.3 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From b7f2c7f7ad3d1cc3e2088be9d58b4d3ba28c0340 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Wed, 14 Aug 2024 16:57:47 -0700 Subject: [PATCH 026/209] Update the loc build to target 9.0.1xx --- eng/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/build.yml b/eng/build.yml index c65b75901aba..f835f1316a1d 100644 --- a/eng/build.yml +++ b/eng/build.yml @@ -15,13 +15,13 @@ parameters: timeoutInMinutes: 180 jobs: -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/release/8.0.4xx'), not(contains(parameters.agentOs, 'TemplateEngine'))) }}: +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/release/9.0.1xx'), not(contains(parameters.agentOs, 'TemplateEngine'))) }}: - template: /eng/common/templates-official/job/onelocbuild.yml@self parameters: CreatePr: true LclSource: lclFilesfromPackage LclPackageId: 'LCL-JUNO-PROD-DOTNETSDK' - MirrorBranch: release/8.0.4xx + MirrorBranch: release/9.0.1xx MirrorRepo: sdk - ${{ if not(contains(parameters.agentOs, 'TemplateEngine')) }}: From 98643d04741ae4bedeebda95b0311393926ba3cb Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 15 Aug 2024 12:46:36 +0000 Subject: [PATCH 027/209] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20240814.3 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 8.0.0-alpha.1.24372.3 -> To Version 8.0.0-alpha.1.24414.3 --- NuGet.config | 29 +++++++++++++++++++++++++++++ eng/Version.Details.xml | 4 ++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/NuGet.config b/NuGet.config index edc2dd7c6526..e19b762bf2de 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,6 +4,15 @@ + + + + + + + + + @@ -19,6 +28,7 @@ + @@ -43,6 +53,15 @@ + + + + + + + + + @@ -67,6 +86,7 @@ + @@ -86,6 +106,15 @@ + + + + + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2d29f1dfa075..3b745f0f2800 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -350,9 +350,9 @@ fb970eccb0a9cae3092464e29cbabda0d4115049 - + https://github.com/dotnet/source-build-reference-packages - 30ed464acd37779c64e9dc652d4460543ebf9966 + 8262ce49763c67d87d6233652e5460f310e8b106 From 1014e2657ed22838678697097386db950c0c79ec Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 15 Aug 2024 13:13:03 +0000 Subject: [PATCH 028/209] Update dependencies from https://github.com/dotnet/arcade build 20240813.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.24412.1 -> To Version 8.0.0-beta.24413.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- global.json | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 03bdc51876ec..6c029ffc9e79 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -487,22 +487,22 @@ - + https://github.com/dotnet/arcade - 770e16f44e6727d0efe1168e62279a399cc92edd + 51321b7e150a2f426cb9e1334687bdfab68ec323 - + https://github.com/dotnet/arcade - 770e16f44e6727d0efe1168e62279a399cc92edd + 51321b7e150a2f426cb9e1334687bdfab68ec323 - + https://github.com/dotnet/arcade - 770e16f44e6727d0efe1168e62279a399cc92edd + 51321b7e150a2f426cb9e1334687bdfab68ec323 - + https://github.com/dotnet/arcade - 770e16f44e6727d0efe1168e62279a399cc92edd + 51321b7e150a2f426cb9e1334687bdfab68ec323 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 3982256470fd..1d6677ca903e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -36,7 +36,7 @@ 8.0.0 4.0.0 8.0.0 - 8.0.0-beta.24412.1 + 8.0.0-beta.24413.2 7.0.0-preview.22423.2 8.0.0 4.3.0 @@ -212,7 +212,7 @@ 6.12.0 6.1.0 - 8.0.0-beta.24412.1 + 8.0.0-beta.24413.2 4.18.4 1.3.2 8.0.0-beta.23607.1 diff --git a/global.json b/global.json index 847214b29c41..f84fbc48d38c 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.107", + "dotnet": "8.0.108", "runtimes": { "dotnet": [ "$(VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion)" @@ -14,7 +14,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24412.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24412.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24413.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24413.2" } } From 9df4e493c4e02ead65e689c298d5da18354ee869 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:18:21 -0700 Subject: [PATCH 029/209] [release/8.0.3xx] Update dependencies from dotnet/templating (#42757) Co-authored-by: dotnet-maestro[bot] --- NuGet.config | 31 ++++++++++++++++++++++++++++++- eng/Version.Details.xml | 10 +++++----- eng/Versions.props | 2 +- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/NuGet.config b/NuGet.config index 13d42f0a00e7..d313488fbdd5 100644 --- a/NuGet.config +++ b/NuGet.config @@ -5,6 +5,15 @@ + + + + + + + + + @@ -20,6 +29,7 @@ + @@ -39,10 +49,19 @@ - + + + + + + + + + + @@ -69,6 +88,7 @@ + @@ -89,6 +109,15 @@ + + + + + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 62543c4a6cef..d5dbc5cbe4b1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,15 +3,15 @@ https://github.com/dotnet/templating - 60fbe5b3d89acb26ded4dbb02f456a52a8faa4b1 + fa45b12b7ef0216d9bb35b99267e18c4ed71f974 - + https://github.com/dotnet/templating - 60fbe5b3d89acb26ded4dbb02f456a52a8faa4b1 + fa45b12b7ef0216d9bb35b99267e18c4ed71f974 - + https://github.com/dotnet/templating - 60fbe5b3d89acb26ded4dbb02f456a52a8faa4b1 + fa45b12b7ef0216d9bb35b99267e18c4ed71f974 diff --git a/eng/Versions.props b/eng/Versions.props index 68eb4e694e50..1b3dc9182ed6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -146,7 +146,7 @@ $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 8.0.305-servicing.24407.5 + 8.0.305-servicing.24414.4 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 014a530dba1db52471e0e6a426268854d4910f74 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:20:27 -0700 Subject: [PATCH 030/209] [release/8.0.3xx] Update dependencies from dotnet/arcade (#42758) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- global.json | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d5dbc5cbe4b1..eaef4e715768 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -487,22 +487,22 @@ - + https://github.com/dotnet/arcade - 770e16f44e6727d0efe1168e62279a399cc92edd + 51321b7e150a2f426cb9e1334687bdfab68ec323 - + https://github.com/dotnet/arcade - 770e16f44e6727d0efe1168e62279a399cc92edd + 51321b7e150a2f426cb9e1334687bdfab68ec323 - + https://github.com/dotnet/arcade - 770e16f44e6727d0efe1168e62279a399cc92edd + 51321b7e150a2f426cb9e1334687bdfab68ec323 - + https://github.com/dotnet/arcade - 770e16f44e6727d0efe1168e62279a399cc92edd + 51321b7e150a2f426cb9e1334687bdfab68ec323 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 1b3dc9182ed6..ac339a7e86d9 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -36,7 +36,7 @@ 7.0.0 4.0.0 7.0.0 - 8.0.0-beta.24412.1 + 8.0.0-beta.24413.2 7.0.0-preview.22423.2 8.0.0 4.3.0 @@ -212,7 +212,7 @@ 6.12.0 6.1.0 - 8.0.0-beta.24412.1 + 8.0.0-beta.24413.2 4.18.4 1.3.2 8.0.0-beta.23607.1 diff --git a/global.json b/global.json index 847214b29c41..f84fbc48d38c 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.107", + "dotnet": "8.0.108", "runtimes": { "dotnet": [ "$(VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion)" @@ -14,7 +14,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24412.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24412.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24413.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24413.2" } } From 3e6fbb9b7b62f5fd96cc9929161210ea580da82a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:20:41 -0700 Subject: [PATCH 031/209] [release/8.0.3xx] Update dependencies from dotnet/source-build-reference-packages (#42756) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index eaef4e715768..8764c5723d8d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -350,9 +350,9 @@ fb970eccb0a9cae3092464e29cbabda0d4115049 - + https://github.com/dotnet/source-build-reference-packages - 30ed464acd37779c64e9dc652d4460543ebf9966 + 8262ce49763c67d87d6233652e5460f310e8b106 From 0d19184a6dbb32a553f27d37ae3760800454b10a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 16 Aug 2024 07:52:34 +0000 Subject: [PATCH 032/209] Update dependencies from https://github.com/dotnet/templating build 20240815.13 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 8.0.109-servicing.24414.3 -> To Version 8.0.109-servicing.24415.13 --- NuGet.config | 2 +- eng/Version.Details.xml | 10 +++++----- eng/Versions.props | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/NuGet.config b/NuGet.config index e19b762bf2de..1cadd278b2bd 100644 --- a/NuGet.config +++ b/NuGet.config @@ -49,7 +49,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3b745f0f2800..a0f05631783a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,15 +3,15 @@ https://github.com/dotnet/templating - b8bd28466fc57e72e9dd0beb985985488c39d37b + 450f4db7dd93753dd86cbd1d781c934812efc906 - + https://github.com/dotnet/templating - b8bd28466fc57e72e9dd0beb985985488c39d37b + 450f4db7dd93753dd86cbd1d781c934812efc906 - + https://github.com/dotnet/templating - b8bd28466fc57e72e9dd0beb985985488c39d37b + 450f4db7dd93753dd86cbd1d781c934812efc906 diff --git a/eng/Versions.props b/eng/Versions.props index 384eacff7070..13fc8c732620 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -142,7 +142,7 @@ $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 8.0.109-servicing.24414.3 + 8.0.109-servicing.24415.13 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 8ed8633afbdd8b8221496144f483e737970ddc07 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 16 Aug 2024 12:08:33 +0000 Subject: [PATCH 033/209] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20240815.1 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 8.0.0-alpha.1.24414.3 -> To Version 8.0.0-alpha.1.24415.1 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3b745f0f2800..673ae8fc704e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -350,9 +350,9 @@ fb970eccb0a9cae3092464e29cbabda0d4115049 - + https://github.com/dotnet/source-build-reference-packages - 8262ce49763c67d87d6233652e5460f310e8b106 + fe3794a68bd668d36d4d5014a9e6c9d22c0e6d86 From 8be0606a9536041d850a0b4ad978e9422761596b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 16 Aug 2024 12:17:53 +0000 Subject: [PATCH 034/209] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20240815.1 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 8.0.0-alpha.1.24414.3 -> To Version 8.0.0-alpha.1.24415.1 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 74dc17692ee5..3e510a443ab5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -350,9 +350,9 @@ fb970eccb0a9cae3092464e29cbabda0d4115049 - + https://github.com/dotnet/source-build-reference-packages - 8262ce49763c67d87d6233652e5460f310e8b106 + fe3794a68bd668d36d4d5014a9e6c9d22c0e6d86 From 5098d2e4200de253222460f06b7d698c8876bafd Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:37:31 -0700 Subject: [PATCH 035/209] [release/8.0.3xx] Update dependencies from dotnet/templating (#42791) Co-authored-by: dotnet-maestro[bot] --- NuGet.config | 2 +- eng/Version.Details.xml | 10 +++++----- eng/Versions.props | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/NuGet.config b/NuGet.config index d313488fbdd5..78ee9598be3f 100644 --- a/NuGet.config +++ b/NuGet.config @@ -49,7 +49,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8764c5723d8d..d836e3a4d11b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,15 +3,15 @@ https://github.com/dotnet/templating - fa45b12b7ef0216d9bb35b99267e18c4ed71f974 + d882952762582a7dd4631244b8c540f58fa85e6e - + https://github.com/dotnet/templating - fa45b12b7ef0216d9bb35b99267e18c4ed71f974 + d882952762582a7dd4631244b8c540f58fa85e6e - + https://github.com/dotnet/templating - fa45b12b7ef0216d9bb35b99267e18c4ed71f974 + d882952762582a7dd4631244b8c540f58fa85e6e diff --git a/eng/Versions.props b/eng/Versions.props index ac339a7e86d9..318f7cda0813 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -146,7 +146,7 @@ $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 8.0.305-servicing.24414.4 + 8.0.305-servicing.24416.2 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 140e502b23fea964416768163e8619da53fd6483 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:38:29 -0700 Subject: [PATCH 036/209] [release/8.0.3xx] Update dependencies from dotnet/source-build-reference-packages (#42790) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d836e3a4d11b..24d9f8258976 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -350,9 +350,9 @@ fb970eccb0a9cae3092464e29cbabda0d4115049 - + https://github.com/dotnet/source-build-reference-packages - 8262ce49763c67d87d6233652e5460f310e8b106 + fe3794a68bd668d36d4d5014a9e6c9d22c0e6d86 From 475e290ceb090c19e13a05ea5dc8589ad15aee77 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Mon, 19 Aug 2024 15:02:09 -0700 Subject: [PATCH 037/209] remove the loc build from the -pr yml --- eng/build-pr.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/eng/build-pr.yml b/eng/build-pr.yml index e86d00ffded0..cd382c556e48 100644 --- a/eng/build-pr.yml +++ b/eng/build-pr.yml @@ -15,15 +15,6 @@ parameters: timeoutInMinutes: 180 jobs: -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/release/8.0.4xx'), not(contains(parameters.agentOs, 'TemplateEngine'))) }}: - - template: /eng/common/templates/job/onelocbuild.yml - parameters: - CreatePr: true - LclSource: lclFilesfromPackage - LclPackageId: 'LCL-JUNO-PROD-DOTNETSDK' - MirrorBranch: release/8.0.4xx - MirrorRepo: sdk - - ${{ if not(contains(parameters.agentOs, 'TemplateEngine')) }}: - template: /eng/common/templates/job/job.yml parameters: From 551d5ce9ee3563a21c5d7327f740a79809785bfc Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 21 Aug 2024 13:07:47 +0000 Subject: [PATCH 038/209] Update dependencies from https://github.com/dotnet/arcade build 20240820.6 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24408.2 -> To Version 9.0.0-beta.24420.6 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 8 ++++---- global.json | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 81dc2df9e6fa..86dc5c5fee28 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -581,34 +581,34 @@ - + https://github.com/dotnet/arcade - 60ae233c3d77f11c5fdb53e570b64d503b13ba59 + b435d26f349d3960d12281321972ed323c35319d - + https://github.com/dotnet/arcade - 60ae233c3d77f11c5fdb53e570b64d503b13ba59 + b435d26f349d3960d12281321972ed323c35319d - + https://github.com/dotnet/arcade - 60ae233c3d77f11c5fdb53e570b64d503b13ba59 + b435d26f349d3960d12281321972ed323c35319d - + https://github.com/dotnet/arcade - 60ae233c3d77f11c5fdb53e570b64d503b13ba59 + b435d26f349d3960d12281321972ed323c35319d - + https://github.com/dotnet/arcade - 60ae233c3d77f11c5fdb53e570b64d503b13ba59 + b435d26f349d3960d12281321972ed323c35319d - + https://github.com/dotnet/arcade - 60ae233c3d77f11c5fdb53e570b64d503b13ba59 + b435d26f349d3960d12281321972ed323c35319d - + https://github.com/dotnet/arcade - 60ae233c3d77f11c5fdb53e570b64d503b13ba59 + b435d26f349d3960d12281321972ed323c35319d diff --git a/eng/Versions.props b/eng/Versions.props index a5798a7d337d..6c4d668c60ed 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -311,10 +311,10 @@ - 9.0.0-beta.24408.2 - 9.0.0-beta.24408.2 - 9.0.0-beta.24408.2 - 9.0.0-beta.24408.2 + 9.0.0-beta.24420.6 + 9.0.0-beta.24420.6 + 9.0.0-beta.24420.6 + 9.0.0-beta.24420.6 diff --git a/global.json b/global.json index 83cec5afb043..1e7dc2d28c11 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24408.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24408.2", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24420.6", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24420.6", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From fece8f61b812dbde0aafec8080bdd476069e99a9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 21 Aug 2024 18:19:11 +0000 Subject: [PATCH 039/209] Update dependencies from https://github.com/dotnet/arcade build 20240821.2 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24420.6 -> To Version 9.0.0-beta.24421.2 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 8 ++++---- eng/common/SetupNugetSources.ps1 | 2 +- eng/common/SetupNugetSources.sh | 2 +- global.json | 4 ++-- 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 86dc5c5fee28..161f2918c9cb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -581,34 +581,34 @@ - + https://github.com/dotnet/arcade - b435d26f349d3960d12281321972ed323c35319d + 9b24668b7196b9639e60770465683cf81465d89a - + https://github.com/dotnet/arcade - b435d26f349d3960d12281321972ed323c35319d + 9b24668b7196b9639e60770465683cf81465d89a - + https://github.com/dotnet/arcade - b435d26f349d3960d12281321972ed323c35319d + 9b24668b7196b9639e60770465683cf81465d89a - + https://github.com/dotnet/arcade - b435d26f349d3960d12281321972ed323c35319d + 9b24668b7196b9639e60770465683cf81465d89a - + https://github.com/dotnet/arcade - b435d26f349d3960d12281321972ed323c35319d + 9b24668b7196b9639e60770465683cf81465d89a - + https://github.com/dotnet/arcade - b435d26f349d3960d12281321972ed323c35319d + 9b24668b7196b9639e60770465683cf81465d89a - + https://github.com/dotnet/arcade - b435d26f349d3960d12281321972ed323c35319d + 9b24668b7196b9639e60770465683cf81465d89a diff --git a/eng/Versions.props b/eng/Versions.props index 6c4d668c60ed..60e2e75cee38 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -311,10 +311,10 @@ - 9.0.0-beta.24420.6 - 9.0.0-beta.24420.6 - 9.0.0-beta.24420.6 - 9.0.0-beta.24420.6 + 9.0.0-beta.24421.2 + 9.0.0-beta.24421.2 + 9.0.0-beta.24421.2 + 9.0.0-beta.24421.2 diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index 2b0a5c9e6655..5db4ad71ee2f 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -157,7 +157,7 @@ if ($dotnet31Source -ne $null) { AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password } -$dotnetVersions = @('5','6','7','8') +$dotnetVersions = @('5','6','7','8','9') foreach ($dotnetVersion in $dotnetVersions) { $feedPrefix = "dotnet" + $dotnetVersion; diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh index b493479a1daf..4604b61b0323 100644 --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -99,7 +99,7 @@ if [ "$?" == "0" ]; then PackageSources+=('dotnet3.1-internal-transport') fi -DotNetVersions=('5' '6' '7' '8') +DotNetVersions=('5' '6' '7' '8' '9') for DotNetVersion in ${DotNetVersions[@]} ; do FeedPrefix="dotnet${DotNetVersion}"; diff --git a/global.json b/global.json index 1e7dc2d28c11..91c0954aef5e 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24420.6", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24420.6", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24421.2", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24421.2", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From 796cd5eccbf57b09c40444d30e5fd1cacd10b39a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 22 Aug 2024 12:46:53 +0000 Subject: [PATCH 040/209] Update dependencies from https://github.com/dotnet/roslyn build 20240821.10 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.10.0-3.24378.5 -> To Version 4.10.0-3.24421.10 --- NuGet.config | 1 + eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/NuGet.config b/NuGet.config index 78ee9598be3f..69de759f195a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -50,6 +50,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 24d9f8258976..e3ae7abaa5a7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,34 +82,34 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn - 1c559959e2b25fea517c6f89d0c363698421865d + 7b931edda3f52f6f3f818a98c584cc2a06d28236 - + https://github.com/dotnet/roslyn - 1c559959e2b25fea517c6f89d0c363698421865d + 7b931edda3f52f6f3f818a98c584cc2a06d28236 - + https://github.com/dotnet/roslyn - 1c559959e2b25fea517c6f89d0c363698421865d + 7b931edda3f52f6f3f818a98c584cc2a06d28236 - + https://github.com/dotnet/roslyn - 1c559959e2b25fea517c6f89d0c363698421865d + 7b931edda3f52f6f3f818a98c584cc2a06d28236 - + https://github.com/dotnet/roslyn - 1c559959e2b25fea517c6f89d0c363698421865d + 7b931edda3f52f6f3f818a98c584cc2a06d28236 - + https://github.com/dotnet/roslyn - 1c559959e2b25fea517c6f89d0c363698421865d + 7b931edda3f52f6f3f818a98c584cc2a06d28236 - + https://github.com/dotnet/roslyn - 1c559959e2b25fea517c6f89d0c363698421865d + 7b931edda3f52f6f3f818a98c584cc2a06d28236 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 318f7cda0813..78752263557d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.10.0-3.24378.5 - 4.10.0-3.24378.5 - 4.10.0-3.24378.5 - 4.10.0-3.24378.5 - 4.10.0-3.24378.5 - 4.10.0-3.24378.5 - 4.10.0-3.24378.5 + 4.10.0-3.24421.10 + 4.10.0-3.24421.10 + 4.10.0-3.24421.10 + 4.10.0-3.24421.10 + 4.10.0-3.24421.10 + 4.10.0-3.24421.10 + 4.10.0-3.24421.10 $(MicrosoftNetCompilersToolsetPackageVersion) From b7321d91a8d3e98faf661feb52b02976772f9bc1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 22 Aug 2024 12:50:13 +0000 Subject: [PATCH 041/209] Update dependencies from https://github.com/dotnet/arcade build 20240821.4 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.24413.2 -> To Version 8.0.0-beta.24421.4 --- NuGet.config | 1 + eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- eng/common/templates/steps/telemetry-start.yml | 2 +- global.json | 4 ++-- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 78ee9598be3f..69de759f195a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -50,6 +50,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 24d9f8258976..0421d5f16ca0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -487,22 +487,22 @@ - + https://github.com/dotnet/arcade - 51321b7e150a2f426cb9e1334687bdfab68ec323 + 4460b755f3c7c89e9660d9580ff79afc4218dd85 - + https://github.com/dotnet/arcade - 51321b7e150a2f426cb9e1334687bdfab68ec323 + 4460b755f3c7c89e9660d9580ff79afc4218dd85 - + https://github.com/dotnet/arcade - 51321b7e150a2f426cb9e1334687bdfab68ec323 + 4460b755f3c7c89e9660d9580ff79afc4218dd85 - + https://github.com/dotnet/arcade - 51321b7e150a2f426cb9e1334687bdfab68ec323 + 4460b755f3c7c89e9660d9580ff79afc4218dd85 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 318f7cda0813..e66b1524c0f5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -36,7 +36,7 @@ 7.0.0 4.0.0 7.0.0 - 8.0.0-beta.24413.2 + 8.0.0-beta.24421.4 7.0.0-preview.22423.2 8.0.0 4.3.0 @@ -212,7 +212,7 @@ 6.12.0 6.1.0 - 8.0.0-beta.24413.2 + 8.0.0-beta.24421.4 4.18.4 1.3.2 8.0.0-beta.23607.1 diff --git a/eng/common/templates/steps/telemetry-start.yml b/eng/common/templates/steps/telemetry-start.yml index 32c01ef0b553..6abbcb33a671 100644 --- a/eng/common/templates/steps/telemetry-start.yml +++ b/eng/common/templates/steps/telemetry-start.yml @@ -8,7 +8,7 @@ parameters: steps: - ${{ if and(eq(parameters.runAsPublic, 'false'), not(eq(variables['System.TeamProject'], 'public'))) }}: - - task: AzureKeyVault@1 + - task: AzureKeyVault@2 inputs: azureSubscription: 'HelixProd_KeyVault' KeyVaultName: HelixProdKV diff --git a/global.json b/global.json index f84fbc48d38c..be6cb4ff4b5d 100644 --- a/global.json +++ b/global.json @@ -14,7 +14,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24413.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24413.2" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24421.4", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24421.4" } } From 5b813f9bb7dc90e36ecefe5f0429fc32ae0e10d5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 22 Aug 2024 12:56:38 +0000 Subject: [PATCH 042/209] Update dependencies from https://github.com/dotnet/roslyn build 20240821.7 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.11.0-3.24378.3 -> To Version 4.11.0-3.24421.7 --- NuGet.config | 1 + eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/NuGet.config b/NuGet.config index 5c3058e8e35a..d4c5b4114f47 100644 --- a/NuGet.config +++ b/NuGet.config @@ -51,6 +51,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 279e1d57af32..651088b5f853 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,34 +82,34 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn - 5e3a11e2e7f952da93f9d35bd63a2fa181c0608b + 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d - + https://github.com/dotnet/roslyn - 5e3a11e2e7f952da93f9d35bd63a2fa181c0608b + 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d - + https://github.com/dotnet/roslyn - 5e3a11e2e7f952da93f9d35bd63a2fa181c0608b + 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d - + https://github.com/dotnet/roslyn - 5e3a11e2e7f952da93f9d35bd63a2fa181c0608b + 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d - + https://github.com/dotnet/roslyn - 5e3a11e2e7f952da93f9d35bd63a2fa181c0608b + 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d - + https://github.com/dotnet/roslyn - 5e3a11e2e7f952da93f9d35bd63a2fa181c0608b + 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d - + https://github.com/dotnet/roslyn - 5e3a11e2e7f952da93f9d35bd63a2fa181c0608b + 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 9043b85b60bc..a4832bacd192 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.11.0-3.24378.3 - 4.11.0-3.24378.3 - 4.11.0-3.24378.3 - 4.11.0-3.24378.3 - 4.11.0-3.24378.3 - 4.11.0-3.24378.3 - 4.11.0-3.24378.3 + 4.11.0-3.24421.7 + 4.11.0-3.24421.7 + 4.11.0-3.24421.7 + 4.11.0-3.24421.7 + 4.11.0-3.24421.7 + 4.11.0-3.24421.7 + 4.11.0-3.24421.7 $(MicrosoftNetCompilersToolsetPackageVersion) From b184bcbfc0f3372e91b74352ee4e245d0fba9d15 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 22 Aug 2024 12:57:10 +0000 Subject: [PATCH 043/209] Update dependencies from https://github.com/dotnet/fsharp build 20240821.7 Microsoft.SourceBuild.Intermediate.fsharp , Microsoft.FSharp.Compiler From Version 8.0.400-beta.24351.2 -> To Version 8.0.401-beta.24421.7 --- NuGet.config | 1 + eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/NuGet.config b/NuGet.config index 5c3058e8e35a..d4c5b4114f47 100644 --- a/NuGet.config +++ b/NuGet.config @@ -51,6 +51,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 279e1d57af32..f51cc8212734 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -68,13 +68,13 @@ 37eb419ad2c986ac5530292e6ee08e962390249e - + https://github.com/dotnet/fsharp - 02adf13f8d69e0105fff4d68dbd5fb1d43bc0e17 + af2f522de602281d4ef5a7b71507c428e814c5c1 - + https://github.com/dotnet/fsharp - 02adf13f8d69e0105fff4d68dbd5fb1d43bc0e17 + af2f522de602281d4ef5a7b71507c428e814c5c1 diff --git a/eng/Versions.props b/eng/Versions.props index 9043b85b60bc..5113076eb245 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -153,7 +153,7 @@ - 12.8.400-beta.24351.2 + 12.8.401-beta.24421.7 From d246243ca82f35370acd14d586c9ef07a9b5bae8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 22 Aug 2024 12:59:52 +0000 Subject: [PATCH 044/209] Update dependencies from https://github.com/dotnet/arcade build 20240821.4 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.24413.2 -> To Version 8.0.0-beta.24421.4 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- eng/common/templates/steps/telemetry-start.yml | 2 +- global.json | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6c029ffc9e79..2b61395ae6ca 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -487,22 +487,22 @@ - + https://github.com/dotnet/arcade - 51321b7e150a2f426cb9e1334687bdfab68ec323 + 4460b755f3c7c89e9660d9580ff79afc4218dd85 - + https://github.com/dotnet/arcade - 51321b7e150a2f426cb9e1334687bdfab68ec323 + 4460b755f3c7c89e9660d9580ff79afc4218dd85 - + https://github.com/dotnet/arcade - 51321b7e150a2f426cb9e1334687bdfab68ec323 + 4460b755f3c7c89e9660d9580ff79afc4218dd85 - + https://github.com/dotnet/arcade - 51321b7e150a2f426cb9e1334687bdfab68ec323 + 4460b755f3c7c89e9660d9580ff79afc4218dd85 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 1d6677ca903e..b1b38abcc34b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -36,7 +36,7 @@ 8.0.0 4.0.0 8.0.0 - 8.0.0-beta.24413.2 + 8.0.0-beta.24421.4 7.0.0-preview.22423.2 8.0.0 4.3.0 @@ -212,7 +212,7 @@ 6.12.0 6.1.0 - 8.0.0-beta.24413.2 + 8.0.0-beta.24421.4 4.18.4 1.3.2 8.0.0-beta.23607.1 diff --git a/eng/common/templates/steps/telemetry-start.yml b/eng/common/templates/steps/telemetry-start.yml index 32c01ef0b553..6abbcb33a671 100644 --- a/eng/common/templates/steps/telemetry-start.yml +++ b/eng/common/templates/steps/telemetry-start.yml @@ -8,7 +8,7 @@ parameters: steps: - ${{ if and(eq(parameters.runAsPublic, 'false'), not(eq(variables['System.TeamProject'], 'public'))) }}: - - task: AzureKeyVault@1 + - task: AzureKeyVault@2 inputs: azureSubscription: 'HelixProd_KeyVault' KeyVaultName: HelixProdKV diff --git a/global.json b/global.json index f84fbc48d38c..be6cb4ff4b5d 100644 --- a/global.json +++ b/global.json @@ -14,7 +14,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24413.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24413.2" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24421.4", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24421.4" } } From 00f81a221fce84a33032f183e985470b2429c31d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 22 Aug 2024 13:19:52 +0000 Subject: [PATCH 045/209] Update dependencies from https://github.com/dotnet/arcade build 20240821.7 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24421.2 -> To Version 9.0.0-beta.24421.7 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 8 ++++---- global.json | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0941a73c6e36..34c2cb1d7e1f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -581,34 +581,34 @@ - + https://github.com/dotnet/arcade - 9b24668b7196b9639e60770465683cf81465d89a + c28c6307d0600513219bcd9ab028c0fedbe591ec - + https://github.com/dotnet/arcade - 9b24668b7196b9639e60770465683cf81465d89a + c28c6307d0600513219bcd9ab028c0fedbe591ec - + https://github.com/dotnet/arcade - 9b24668b7196b9639e60770465683cf81465d89a + c28c6307d0600513219bcd9ab028c0fedbe591ec - + https://github.com/dotnet/arcade - 9b24668b7196b9639e60770465683cf81465d89a + c28c6307d0600513219bcd9ab028c0fedbe591ec - + https://github.com/dotnet/arcade - 9b24668b7196b9639e60770465683cf81465d89a + c28c6307d0600513219bcd9ab028c0fedbe591ec - + https://github.com/dotnet/arcade - 9b24668b7196b9639e60770465683cf81465d89a + c28c6307d0600513219bcd9ab028c0fedbe591ec - + https://github.com/dotnet/arcade - 9b24668b7196b9639e60770465683cf81465d89a + c28c6307d0600513219bcd9ab028c0fedbe591ec diff --git a/eng/Versions.props b/eng/Versions.props index 1587018d86b9..cf9a91b24c13 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -311,10 +311,10 @@ - 9.0.0-beta.24421.2 - 9.0.0-beta.24421.2 - 9.0.0-beta.24421.2 - 9.0.0-beta.24421.2 + 9.0.0-beta.24421.7 + 9.0.0-beta.24421.7 + 9.0.0-beta.24421.7 + 9.0.0-beta.24421.7 diff --git a/global.json b/global.json index 91c0954aef5e..f57a1a3c81ff 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24421.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24421.2", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24421.7", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24421.7", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From 706412dd1ceae419617d0e664059b2ecb8781603 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 23 Aug 2024 12:14:20 +0000 Subject: [PATCH 046/209] Update dependencies from https://github.com/dotnet/roslyn build 20240822.5 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.10.0-3.24421.10 -> To Version 4.10.0-3.24422.5 --- NuGet.config | 2 ++ eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/NuGet.config b/NuGet.config index 69de759f195a..76f13852f5d8 100644 --- a/NuGet.config +++ b/NuGet.config @@ -50,6 +50,8 @@ + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e3ae7abaa5a7..6194ab612150 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,34 +82,34 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn - 7b931edda3f52f6f3f818a98c584cc2a06d28236 + c132bb90b5022a7fad96625f84f6b5f3fa188c5e - + https://github.com/dotnet/roslyn - 7b931edda3f52f6f3f818a98c584cc2a06d28236 + c132bb90b5022a7fad96625f84f6b5f3fa188c5e - + https://github.com/dotnet/roslyn - 7b931edda3f52f6f3f818a98c584cc2a06d28236 + c132bb90b5022a7fad96625f84f6b5f3fa188c5e - + https://github.com/dotnet/roslyn - 7b931edda3f52f6f3f818a98c584cc2a06d28236 + c132bb90b5022a7fad96625f84f6b5f3fa188c5e - + https://github.com/dotnet/roslyn - 7b931edda3f52f6f3f818a98c584cc2a06d28236 + c132bb90b5022a7fad96625f84f6b5f3fa188c5e - + https://github.com/dotnet/roslyn - 7b931edda3f52f6f3f818a98c584cc2a06d28236 + c132bb90b5022a7fad96625f84f6b5f3fa188c5e - + https://github.com/dotnet/roslyn - 7b931edda3f52f6f3f818a98c584cc2a06d28236 + c132bb90b5022a7fad96625f84f6b5f3fa188c5e https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 78752263557d..a84e758d3ffb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.10.0-3.24421.10 - 4.10.0-3.24421.10 - 4.10.0-3.24421.10 - 4.10.0-3.24421.10 - 4.10.0-3.24421.10 - 4.10.0-3.24421.10 - 4.10.0-3.24421.10 + 4.10.0-3.24422.5 + 4.10.0-3.24422.5 + 4.10.0-3.24422.5 + 4.10.0-3.24422.5 + 4.10.0-3.24422.5 + 4.10.0-3.24422.5 + 4.10.0-3.24422.5 $(MicrosoftNetCompilersToolsetPackageVersion) From 36d7077b470b336be522dec302d1a10a59c83385 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 23 Aug 2024 12:16:11 +0000 Subject: [PATCH 047/209] Update dependencies from https://github.com/dotnet/roslyn build 20240822.9 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.11.0-3.24421.7 -> To Version 4.11.0-3.24422.9 --- NuGet.config | 2 ++ eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/NuGet.config b/NuGet.config index d4c5b4114f47..4640bedb5a86 100644 --- a/NuGet.config +++ b/NuGet.config @@ -51,6 +51,8 @@ + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 651088b5f853..90a3518936af 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,34 +82,34 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn - 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d + 1940caafb2905f1ba1eddfbe7830174f76194a6d - + https://github.com/dotnet/roslyn - 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d + 1940caafb2905f1ba1eddfbe7830174f76194a6d - + https://github.com/dotnet/roslyn - 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d + 1940caafb2905f1ba1eddfbe7830174f76194a6d - + https://github.com/dotnet/roslyn - 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d + 1940caafb2905f1ba1eddfbe7830174f76194a6d - + https://github.com/dotnet/roslyn - 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d + 1940caafb2905f1ba1eddfbe7830174f76194a6d - + https://github.com/dotnet/roslyn - 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d + 1940caafb2905f1ba1eddfbe7830174f76194a6d - + https://github.com/dotnet/roslyn - 3d9cb8aa661bd59c78ed71fc3d6e6c206328fd5d + 1940caafb2905f1ba1eddfbe7830174f76194a6d https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index a4832bacd192..15b501e84531 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.11.0-3.24421.7 - 4.11.0-3.24421.7 - 4.11.0-3.24421.7 - 4.11.0-3.24421.7 - 4.11.0-3.24421.7 - 4.11.0-3.24421.7 - 4.11.0-3.24421.7 + 4.11.0-3.24422.9 + 4.11.0-3.24422.9 + 4.11.0-3.24422.9 + 4.11.0-3.24422.9 + 4.11.0-3.24422.9 + 4.11.0-3.24422.9 + 4.11.0-3.24422.9 $(MicrosoftNetCompilersToolsetPackageVersion) From ab7d9c62b1e252746a636ed403af23a2737729ae Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 23 Aug 2024 23:59:58 +0000 Subject: [PATCH 048/209] Update dependencies from https://github.com/dotnet/roslyn build 20240823.6 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.8.0-7.24378.1 -> To Version 4.8.0-7.24423.6 --- NuGet.config | 3 +++ eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/NuGet.config b/NuGet.config index e19b762bf2de..7f0ac2097d29 100644 --- a/NuGet.config +++ b/NuGet.config @@ -50,6 +50,9 @@ + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3b745f0f2800..3db52cf7ebba 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,34 +82,34 @@ b252c608794019761c3f0eb50d142db1ff1b6a2e - + https://github.com/dotnet/roslyn - 302f7876e6784ee3689fb28bb3480759b6c31658 + d8282e36f9e389ee9eaad96b5aba66b83b9a37fd - + https://github.com/dotnet/roslyn - 302f7876e6784ee3689fb28bb3480759b6c31658 + d8282e36f9e389ee9eaad96b5aba66b83b9a37fd - + https://github.com/dotnet/roslyn - 302f7876e6784ee3689fb28bb3480759b6c31658 + d8282e36f9e389ee9eaad96b5aba66b83b9a37fd - + https://github.com/dotnet/roslyn - 302f7876e6784ee3689fb28bb3480759b6c31658 + d8282e36f9e389ee9eaad96b5aba66b83b9a37fd - + https://github.com/dotnet/roslyn - 302f7876e6784ee3689fb28bb3480759b6c31658 + d8282e36f9e389ee9eaad96b5aba66b83b9a37fd - + https://github.com/dotnet/roslyn - 302f7876e6784ee3689fb28bb3480759b6c31658 + d8282e36f9e389ee9eaad96b5aba66b83b9a37fd - + https://github.com/dotnet/roslyn - 302f7876e6784ee3689fb28bb3480759b6c31658 + d8282e36f9e389ee9eaad96b5aba66b83b9a37fd https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 384eacff7070..8bff2e93a0ee 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -153,13 +153,13 @@ - 4.8.0-7.24378.1 - 4.8.0-7.24378.1 - 4.8.0-7.24378.1 - 4.8.0-7.24378.1 - 4.8.0-7.24378.1 - 4.8.0-7.24378.1 - 4.8.0-7.24378.1 + 4.8.0-7.24423.6 + 4.8.0-7.24423.6 + 4.8.0-7.24423.6 + 4.8.0-7.24423.6 + 4.8.0-7.24423.6 + 4.8.0-7.24423.6 + 4.8.0-7.24423.6 $(MicrosoftNetCompilersToolsetPackageVersion) From 8503f2c4ce514ebc190ecf6f977a284e586ba804 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 24 Aug 2024 12:42:26 +0000 Subject: [PATCH 049/209] Update dependencies from https://github.com/dotnet/roslyn build 20240823.8 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.10.0-3.24422.5 -> To Version 4.10.0-3.24423.8 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6194ab612150..baab58f7298e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,34 +82,34 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn - c132bb90b5022a7fad96625f84f6b5f3fa188c5e + 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn - c132bb90b5022a7fad96625f84f6b5f3fa188c5e + 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn - c132bb90b5022a7fad96625f84f6b5f3fa188c5e + 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn - c132bb90b5022a7fad96625f84f6b5f3fa188c5e + 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn - c132bb90b5022a7fad96625f84f6b5f3fa188c5e + 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn - c132bb90b5022a7fad96625f84f6b5f3fa188c5e + 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn - c132bb90b5022a7fad96625f84f6b5f3fa188c5e + 7e773d1b517980ae5815bb5fc44419432b98b3fe https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index a84e758d3ffb..e8bc8cc737bc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.10.0-3.24422.5 - 4.10.0-3.24422.5 - 4.10.0-3.24422.5 - 4.10.0-3.24422.5 - 4.10.0-3.24422.5 - 4.10.0-3.24422.5 - 4.10.0-3.24422.5 + 4.10.0-3.24423.8 + 4.10.0-3.24423.8 + 4.10.0-3.24423.8 + 4.10.0-3.24423.8 + 4.10.0-3.24423.8 + 4.10.0-3.24423.8 + 4.10.0-3.24423.8 $(MicrosoftNetCompilersToolsetPackageVersion) From dab03d2ea0c0e546535aded38ac5a27876c7888d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 24 Aug 2024 12:46:38 +0000 Subject: [PATCH 050/209] Update dependencies from https://github.com/dotnet/roslyn build 20240823.10 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.11.0-3.24422.9 -> To Version 4.11.0-3.24423.10 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 90a3518936af..8b889aebb37f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,34 +82,34 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn - 1940caafb2905f1ba1eddfbe7830174f76194a6d + ada20a67474fc1ee79ceb7916c47e99cd78999a8 - + https://github.com/dotnet/roslyn - 1940caafb2905f1ba1eddfbe7830174f76194a6d + ada20a67474fc1ee79ceb7916c47e99cd78999a8 - + https://github.com/dotnet/roslyn - 1940caafb2905f1ba1eddfbe7830174f76194a6d + ada20a67474fc1ee79ceb7916c47e99cd78999a8 - + https://github.com/dotnet/roslyn - 1940caafb2905f1ba1eddfbe7830174f76194a6d + ada20a67474fc1ee79ceb7916c47e99cd78999a8 - + https://github.com/dotnet/roslyn - 1940caafb2905f1ba1eddfbe7830174f76194a6d + ada20a67474fc1ee79ceb7916c47e99cd78999a8 - + https://github.com/dotnet/roslyn - 1940caafb2905f1ba1eddfbe7830174f76194a6d + ada20a67474fc1ee79ceb7916c47e99cd78999a8 - + https://github.com/dotnet/roslyn - 1940caafb2905f1ba1eddfbe7830174f76194a6d + ada20a67474fc1ee79ceb7916c47e99cd78999a8 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 15b501e84531..b9ef6039b321 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.11.0-3.24422.9 - 4.11.0-3.24422.9 - 4.11.0-3.24422.9 - 4.11.0-3.24422.9 - 4.11.0-3.24422.9 - 4.11.0-3.24422.9 - 4.11.0-3.24422.9 + 4.11.0-3.24423.10 + 4.11.0-3.24423.10 + 4.11.0-3.24423.10 + 4.11.0-3.24423.10 + 4.11.0-3.24423.10 + 4.11.0-3.24423.10 + 4.11.0-3.24423.10 $(MicrosoftNetCompilersToolsetPackageVersion) From c857338a7c965eb92e927e1b7aa3699a89c3ecff Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 24 Aug 2024 12:47:09 +0000 Subject: [PATCH 051/209] Update dependencies from https://github.com/dotnet/razor build 20240823.1 Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24420.1 -> To Version 9.0.0-preview.24423.1 --- NuGet.config | 3 +++ eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 6 +++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/NuGet.config b/NuGet.config index 5c3058e8e35a..4640bedb5a86 100644 --- a/NuGet.config +++ b/NuGet.config @@ -51,6 +51,9 @@ + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 279e1d57af32..5bd85c9aef5c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -289,18 +289,18 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 954f61dd38b33caa2b736c73530bd5a294174437 - + https://github.com/dotnet/razor - 68650a7d94261bc56a1f4bc522c2ee35314b1abb + b5e50df9971db8cd118b25b0dc414d830d0a5afc - + https://github.com/dotnet/razor - 68650a7d94261bc56a1f4bc522c2ee35314b1abb + b5e50df9971db8cd118b25b0dc414d830d0a5afc - + https://github.com/dotnet/razor - 68650a7d94261bc56a1f4bc522c2ee35314b1abb + b5e50df9971db8cd118b25b0dc414d830d0a5afc https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 9043b85b60bc..4cd9bb15df3a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -178,9 +178,9 @@ - 9.0.0-preview.24420.1 - 9.0.0-preview.24420.1 - 9.0.0-preview.24420.1 + 9.0.0-preview.24423.1 + 9.0.0-preview.24423.1 + 9.0.0-preview.24423.1 From c8b4ea4c42d8b511c3f327a9e2569d883c061627 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 24 Aug 2024 13:01:59 +0000 Subject: [PATCH 052/209] Update dependencies from https://github.com/dotnet/arcade build 20240823.2 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24421.7 -> To Version 9.0.0-beta.24423.2 --- eng/Version.Details.xml | 28 +++---- eng/Versions.props | 8 +- eng/common/core-templates/job/job.yml | 5 -- eng/common/internal/Tools.csproj | 1 + eng/common/templates-official/job/job.yml | 14 ++++ eng/common/templates/job/job.yml | 96 +++++++++++------------ global.json | 4 +- 7 files changed, 79 insertions(+), 77 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 34c2cb1d7e1f..bb474a12125a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -581,34 +581,34 @@ - + https://github.com/dotnet/arcade - c28c6307d0600513219bcd9ab028c0fedbe591ec + 91599268652b51969b8d8088d4f2f2ba7b3ebb19 - + https://github.com/dotnet/arcade - c28c6307d0600513219bcd9ab028c0fedbe591ec + 91599268652b51969b8d8088d4f2f2ba7b3ebb19 - + https://github.com/dotnet/arcade - c28c6307d0600513219bcd9ab028c0fedbe591ec + 91599268652b51969b8d8088d4f2f2ba7b3ebb19 - + https://github.com/dotnet/arcade - c28c6307d0600513219bcd9ab028c0fedbe591ec + 91599268652b51969b8d8088d4f2f2ba7b3ebb19 - + https://github.com/dotnet/arcade - c28c6307d0600513219bcd9ab028c0fedbe591ec + 91599268652b51969b8d8088d4f2f2ba7b3ebb19 - + https://github.com/dotnet/arcade - c28c6307d0600513219bcd9ab028c0fedbe591ec + 91599268652b51969b8d8088d4f2f2ba7b3ebb19 - + https://github.com/dotnet/arcade - c28c6307d0600513219bcd9ab028c0fedbe591ec + 91599268652b51969b8d8088d4f2f2ba7b3ebb19 diff --git a/eng/Versions.props b/eng/Versions.props index cf9a91b24c13..b91924814db7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -311,10 +311,10 @@ - 9.0.0-beta.24421.7 - 9.0.0-beta.24421.7 - 9.0.0-beta.24421.7 - 9.0.0-beta.24421.7 + 9.0.0-beta.24423.2 + 9.0.0-beta.24423.2 + 9.0.0-beta.24423.2 + 9.0.0-beta.24423.2 diff --git a/eng/common/core-templates/job/job.yml b/eng/common/core-templates/job/job.yml index c732bee9f4a6..ba53ebfbd513 100644 --- a/eng/common/core-templates/job/job.yml +++ b/eng/common/core-templates/job/job.yml @@ -33,11 +33,6 @@ parameters: artifactPublishSteps: [] runAsPublic: false -# Sbom related params - enableSbom: true - PackageVersion: 9.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' - # 1es specific parameters is1ESPipeline: '' diff --git a/eng/common/internal/Tools.csproj b/eng/common/internal/Tools.csproj index e925952d5666..32f79dfb3402 100644 --- a/eng/common/internal/Tools.csproj +++ b/eng/common/internal/Tools.csproj @@ -4,6 +4,7 @@ net472 false + false diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index 0c2928d5c799..3d16b41c78c1 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -1,8 +1,22 @@ +parameters: +# Sbom related params + enableSbom: true + PackageVersion: 9.0.0 + BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + jobs: - template: /eng/common/core-templates/job/job.yml parameters: is1ESPipeline: true + componentGovernanceSteps: + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }}: + - template: /eng/common/templates/steps/generate-sbom.yml + parameters: + PackageVersion: ${{ parameters.packageVersion }} + BuildDropPath: ${{ parameters.buildDropPath }} + publishArtifacts: false + # publish artifacts # for 1ES managed templates, use the templateContext.output to handle multiple outputs. templateContext: diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 8da477dd69f0..07d317bf8f9a 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -19,71 +19,63 @@ jobs: steps: - ${{ each step in parameters.steps }}: - ${{ step }} - + componentGovernanceSteps: - - template: /eng/common/templates/steps/component-governance.yml - parameters: - ${{ if eq(parameters.disableComponentGovernance, '') }}: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.runAsPublic, 'false'), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/dotnet/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/microsoft/'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))) }}: - disableComponentGovernance: false - ${{ else }}: - disableComponentGovernance: true + - template: /eng/common/templates/steps/component-governance.yml + parameters: + ${{ if eq(parameters.disableComponentGovernance, '') }}: + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.runAsPublic, 'false'), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/dotnet/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/microsoft/'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))) }}: + disableComponentGovernance: false ${{ else }}: - disableComponentGovernance: ${{ parameters.disableComponentGovernance }} - componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} - - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }}: - - template: /eng/common/templates/steps/generate-sbom.yml - parameters: - PackageVersion: ${{ parameters.packageVersion }} - BuildDropPath: ${{ parameters.buildDropPath }} - publishArtifacts: false - + disableComponentGovernance: true + ${{ else }}: + disableComponentGovernance: ${{ parameters.disableComponentGovernance }} + componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} artifactPublishSteps: - - ${{ if ne(parameters.artifacts.publish, '') }}: - - ${{ if and(ne(parameters.artifacts.publish.artifacts, 'false'), ne(parameters.artifacts.publish.artifacts, '')) }}: - - template: /eng/common/core-templates/steps/publish-build-artifacts.yml - parameters: - is1ESPipeline: false - args: - displayName: Publish pipeline artifacts - pathToPublish: '$(Build.ArtifactStagingDirectory)/artifacts' - publishLocation: Container - artifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} - continueOnError: true - condition: always() - - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: - - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml - parameters: - is1ESPipeline: false - args: - targetPath: '$(Build.ArtifactStagingDirectory)/artifacts/log' - artifactName: ${{ coalesce(parameters.artifacts.publish.logs.name, 'Logs_Build_$(Agent.Os)_$(_BuildConfig)') }} - displayName: 'Publish logs' - continueOnError: true - condition: always() - sbomEnabled: false # we don't need SBOM for logs - - - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}: + - ${{ if ne(parameters.artifacts.publish, '') }}: + - ${{ if and(ne(parameters.artifacts.publish.artifacts, 'false'), ne(parameters.artifacts.publish.artifacts, '')) }}: - template: /eng/common/core-templates/steps/publish-build-artifacts.yml parameters: is1ESPipeline: false args: - displayName: Publish Logs - pathToPublish: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)' + displayName: Publish pipeline artifacts + pathToPublish: '$(Build.ArtifactStagingDirectory)/artifacts' publishLocation: Container - artifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + artifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} continueOnError: true condition: always() - - - ${{ if eq(parameters.enableBuildRetry, 'true') }}: + - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml parameters: is1ESPipeline: false args: - targetPath: '$(Build.SourcesDirectory)\eng\common\BuildConfiguration' - artifactName: 'BuildConfiguration' - displayName: 'Publish build retry configuration' + targetPath: '$(Build.ArtifactStagingDirectory)/artifacts/log' + artifactName: ${{ coalesce(parameters.artifacts.publish.logs.name, 'Logs_Build_$(Agent.Os)_$(_BuildConfig)') }} + displayName: 'Publish logs' continueOnError: true - sbomEnabled: false # we don't need SBOM for BuildConfiguration + condition: always() + sbomEnabled: false # we don't need SBOM for logs + + - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}: + - template: /eng/common/core-templates/steps/publish-build-artifacts.yml + parameters: + is1ESPipeline: false + args: + displayName: Publish Logs + pathToPublish: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)' + publishLocation: Container + artifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + continueOnError: true + condition: always() + + - ${{ if eq(parameters.enableBuildRetry, 'true') }}: + - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml + parameters: + is1ESPipeline: false + args: + targetPath: '$(Build.SourcesDirectory)\eng\common\BuildConfiguration' + artifactName: 'BuildConfiguration' + displayName: 'Publish build retry configuration' + continueOnError: true + sbomEnabled: false # we don't need SBOM for BuildConfiguration diff --git a/global.json b/global.json index f57a1a3c81ff..f5c14ef36536 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24421.7", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24421.7", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24423.2", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24423.2", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From fab301123ef8d2f5d01d95743fff70b1442b3dc4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 25 Aug 2024 12:04:18 +0000 Subject: [PATCH 053/209] Update dependencies from https://github.com/dotnet/roslyn build 20240825.3 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.10.0-3.24423.8 -> To Version 4.10.0-3.24425.3 --- eng/Version.Details.xml | 14 +++++++------- eng/Versions.props | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index baab58f7298e..45ffbc344efa 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,32 +82,32 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn 7e773d1b517980ae5815bb5fc44419432b98b3fe - + https://github.com/dotnet/roslyn 7e773d1b517980ae5815bb5fc44419432b98b3fe diff --git a/eng/Versions.props b/eng/Versions.props index e8bc8cc737bc..5ae97f43a748 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.10.0-3.24423.8 - 4.10.0-3.24423.8 - 4.10.0-3.24423.8 - 4.10.0-3.24423.8 - 4.10.0-3.24423.8 - 4.10.0-3.24423.8 - 4.10.0-3.24423.8 + 4.10.0-3.24425.3 + 4.10.0-3.24425.3 + 4.10.0-3.24425.3 + 4.10.0-3.24425.3 + 4.10.0-3.24425.3 + 4.10.0-3.24425.3 + 4.10.0-3.24425.3 $(MicrosoftNetCompilersToolsetPackageVersion) From 3eee9dbc21cdc0b78323a20498d32022ba123779 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 27 Aug 2024 13:15:17 +0000 Subject: [PATCH 054/209] Update dependencies from https://github.com/dotnet/arcade build 20240826.3 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24423.2 -> To Version 9.0.0-beta.24426.3 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 8 ++++---- global.json | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bb474a12125a..6a537939b9b6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -581,34 +581,34 @@ - + https://github.com/dotnet/arcade - 91599268652b51969b8d8088d4f2f2ba7b3ebb19 + e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 - + https://github.com/dotnet/arcade - 91599268652b51969b8d8088d4f2f2ba7b3ebb19 + e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 - + https://github.com/dotnet/arcade - 91599268652b51969b8d8088d4f2f2ba7b3ebb19 + e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 - + https://github.com/dotnet/arcade - 91599268652b51969b8d8088d4f2f2ba7b3ebb19 + e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 - + https://github.com/dotnet/arcade - 91599268652b51969b8d8088d4f2f2ba7b3ebb19 + e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 - + https://github.com/dotnet/arcade - 91599268652b51969b8d8088d4f2f2ba7b3ebb19 + e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 - + https://github.com/dotnet/arcade - 91599268652b51969b8d8088d4f2f2ba7b3ebb19 + e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 diff --git a/eng/Versions.props b/eng/Versions.props index b91924814db7..a603398c75e5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -311,10 +311,10 @@ - 9.0.0-beta.24423.2 - 9.0.0-beta.24423.2 - 9.0.0-beta.24423.2 - 9.0.0-beta.24423.2 + 9.0.0-beta.24426.3 + 9.0.0-beta.24426.3 + 9.0.0-beta.24426.3 + 9.0.0-beta.24426.3 diff --git a/global.json b/global.json index f5c14ef36536..368bb2b1d0b8 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24423.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24423.2", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24426.3", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24426.3", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From 03f335b39eb9428501e021d5c31f9dc1e573bddf Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 28 Aug 2024 12:17:15 +0000 Subject: [PATCH 055/209] Update dependencies from https://github.com/dotnet/roslyn build 20240827.10 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.10.0-3.24425.3 -> To Version 4.10.0-3.24427.10 --- NuGet.config | 1 + eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/NuGet.config b/NuGet.config index 76f13852f5d8..388dc015bbab 100644 --- a/NuGet.config +++ b/NuGet.config @@ -50,6 +50,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 45ffbc344efa..dc714aa56f39 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,34 +82,34 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn - 7e773d1b517980ae5815bb5fc44419432b98b3fe + 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn - 7e773d1b517980ae5815bb5fc44419432b98b3fe + 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn - 7e773d1b517980ae5815bb5fc44419432b98b3fe + 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn - 7e773d1b517980ae5815bb5fc44419432b98b3fe + 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn - 7e773d1b517980ae5815bb5fc44419432b98b3fe + 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn - 7e773d1b517980ae5815bb5fc44419432b98b3fe + 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn - 7e773d1b517980ae5815bb5fc44419432b98b3fe + 6602e40818222de350436248d796d43abde37ddb https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 5ae97f43a748..db4cf79acc78 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.10.0-3.24425.3 - 4.10.0-3.24425.3 - 4.10.0-3.24425.3 - 4.10.0-3.24425.3 - 4.10.0-3.24425.3 - 4.10.0-3.24425.3 - 4.10.0-3.24425.3 + 4.10.0-3.24427.10 + 4.10.0-3.24427.10 + 4.10.0-3.24427.10 + 4.10.0-3.24427.10 + 4.10.0-3.24427.10 + 4.10.0-3.24427.10 + 4.10.0-3.24427.10 $(MicrosoftNetCompilersToolsetPackageVersion) From 3165a92aac529c5e275f579e9d93da3ce3cef0e2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 28 Aug 2024 12:20:50 +0000 Subject: [PATCH 056/209] Update dependencies from https://github.com/dotnet/arcade build 20240826.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.24421.4 -> To Version 8.0.0-beta.24426.2 --- NuGet.config | 3 +++ eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- global.json | 4 ++-- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/NuGet.config b/NuGet.config index 69de759f195a..388dc015bbab 100644 --- a/NuGet.config +++ b/NuGet.config @@ -50,6 +50,9 @@ + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0421d5f16ca0..76b0cebc0095 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -487,22 +487,22 @@ - + https://github.com/dotnet/arcade - 4460b755f3c7c89e9660d9580ff79afc4218dd85 + 80264e60280e2815e7d65871081ccac04a32445c - + https://github.com/dotnet/arcade - 4460b755f3c7c89e9660d9580ff79afc4218dd85 + 80264e60280e2815e7d65871081ccac04a32445c - + https://github.com/dotnet/arcade - 4460b755f3c7c89e9660d9580ff79afc4218dd85 + 80264e60280e2815e7d65871081ccac04a32445c - + https://github.com/dotnet/arcade - 4460b755f3c7c89e9660d9580ff79afc4218dd85 + 80264e60280e2815e7d65871081ccac04a32445c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index e66b1524c0f5..5da3d608a7a7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -36,7 +36,7 @@ 7.0.0 4.0.0 7.0.0 - 8.0.0-beta.24421.4 + 8.0.0-beta.24426.2 7.0.0-preview.22423.2 8.0.0 4.3.0 @@ -212,7 +212,7 @@ 6.12.0 6.1.0 - 8.0.0-beta.24421.4 + 8.0.0-beta.24426.2 4.18.4 1.3.2 8.0.0-beta.23607.1 diff --git a/global.json b/global.json index be6cb4ff4b5d..dfb098bbd9ab 100644 --- a/global.json +++ b/global.json @@ -14,7 +14,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24421.4", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24421.4" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24426.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24426.2" } } From dcc8dcffc103f66b184f87da26cbb75cff5ab77c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 28 Aug 2024 12:25:09 +0000 Subject: [PATCH 057/209] Update dependencies from https://github.com/dotnet/roslyn build 20240827.13 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.11.0-3.24423.10 -> To Version 4.11.0-3.24427.13 --- NuGet.config | 1 + eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/NuGet.config b/NuGet.config index 4640bedb5a86..eeca6df04cec 100644 --- a/NuGet.config +++ b/NuGet.config @@ -51,6 +51,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8b889aebb37f..7886cda6f226 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,34 +82,34 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn - ada20a67474fc1ee79ceb7916c47e99cd78999a8 + 619d827e31d8c199d397dbc6f7536c293116abc1 - + https://github.com/dotnet/roslyn - ada20a67474fc1ee79ceb7916c47e99cd78999a8 + 619d827e31d8c199d397dbc6f7536c293116abc1 - + https://github.com/dotnet/roslyn - ada20a67474fc1ee79ceb7916c47e99cd78999a8 + 619d827e31d8c199d397dbc6f7536c293116abc1 - + https://github.com/dotnet/roslyn - ada20a67474fc1ee79ceb7916c47e99cd78999a8 + 619d827e31d8c199d397dbc6f7536c293116abc1 - + https://github.com/dotnet/roslyn - ada20a67474fc1ee79ceb7916c47e99cd78999a8 + 619d827e31d8c199d397dbc6f7536c293116abc1 - + https://github.com/dotnet/roslyn - ada20a67474fc1ee79ceb7916c47e99cd78999a8 + 619d827e31d8c199d397dbc6f7536c293116abc1 - + https://github.com/dotnet/roslyn - ada20a67474fc1ee79ceb7916c47e99cd78999a8 + 619d827e31d8c199d397dbc6f7536c293116abc1 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index b9ef6039b321..81ae35803554 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.11.0-3.24423.10 - 4.11.0-3.24423.10 - 4.11.0-3.24423.10 - 4.11.0-3.24423.10 - 4.11.0-3.24423.10 - 4.11.0-3.24423.10 - 4.11.0-3.24423.10 + 4.11.0-3.24427.13 + 4.11.0-3.24427.13 + 4.11.0-3.24427.13 + 4.11.0-3.24427.13 + 4.11.0-3.24427.13 + 4.11.0-3.24427.13 + 4.11.0-3.24427.13 $(MicrosoftNetCompilersToolsetPackageVersion) From 2f1a538bd1811558b74707e0cd79e85adda0929a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 28 Aug 2024 12:28:19 +0000 Subject: [PATCH 058/209] Update dependencies from https://github.com/dotnet/arcade build 20240826.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.24421.4 -> To Version 8.0.0-beta.24426.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- global.json | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2b61395ae6ca..a4e2f0f9c2fb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -487,22 +487,22 @@ - + https://github.com/dotnet/arcade - 4460b755f3c7c89e9660d9580ff79afc4218dd85 + 80264e60280e2815e7d65871081ccac04a32445c - + https://github.com/dotnet/arcade - 4460b755f3c7c89e9660d9580ff79afc4218dd85 + 80264e60280e2815e7d65871081ccac04a32445c - + https://github.com/dotnet/arcade - 4460b755f3c7c89e9660d9580ff79afc4218dd85 + 80264e60280e2815e7d65871081ccac04a32445c - + https://github.com/dotnet/arcade - 4460b755f3c7c89e9660d9580ff79afc4218dd85 + 80264e60280e2815e7d65871081ccac04a32445c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index b1b38abcc34b..e69f41591e89 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -36,7 +36,7 @@ 8.0.0 4.0.0 8.0.0 - 8.0.0-beta.24421.4 + 8.0.0-beta.24426.2 7.0.0-preview.22423.2 8.0.0 4.3.0 @@ -212,7 +212,7 @@ 6.12.0 6.1.0 - 8.0.0-beta.24421.4 + 8.0.0-beta.24426.2 4.18.4 1.3.2 8.0.0-beta.23607.1 diff --git a/global.json b/global.json index be6cb4ff4b5d..dfb098bbd9ab 100644 --- a/global.json +++ b/global.json @@ -14,7 +14,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24421.4", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24421.4" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24426.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24426.2" } } From 3bde80798d7888da9b326da59452aaa58d465dc7 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Thu, 25 Jul 2024 12:39:30 -0400 Subject: [PATCH 059/209] Start installer interface for managing GC roots --- .../Windows/InstallMessageDispatcher.cs | 9 ++++ .../Windows/InstallRequestMessage.cs | 6 +++ .../Installer/Windows/InstallRequestType.cs | 5 +++ .../Windows/InstallResponseMessage.cs | 8 +++- .../commands/InstallingWorkloadCommand.cs | 5 +++ .../GlobalJsonWorkloadSetFile.cs | 43 +++++++++++++++++++ .../dotnet-workload/install/IInstaller.cs | 11 +++++ .../install/MsiInstallerBase.cs | 43 +++++++++++++++++++ .../install/NetSdkMsiInstallerClient.cs | 27 ++++++++++++ 9 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs diff --git a/src/Cli/dotnet/Installer/Windows/InstallMessageDispatcher.cs b/src/Cli/dotnet/Installer/Windows/InstallMessageDispatcher.cs index 85b5b6aaaf0b..dd15f6f097af 100644 --- a/src/Cli/dotnet/Installer/Windows/InstallMessageDispatcher.cs +++ b/src/Cli/dotnet/Installer/Windows/InstallMessageDispatcher.cs @@ -208,5 +208,14 @@ public InstallResponseMessage SendUpdateWorkloadSetRequest(SdkFeatureBand sdkFea WorkloadSetVersion = newVersion, }); } + + public InstallResponseMessage SendOpenWorkloadRootsFileRequest(SdkFeatureBand sdkFeatureBand) + { + return Send(new InstallRequestMessage + { + RequestType = InstallRequestType.OpenWorkloadRootsFile, + SdkFeatureBand = sdkFeatureBand.ToString() + }); + } } } diff --git a/src/Cli/dotnet/Installer/Windows/InstallRequestMessage.cs b/src/Cli/dotnet/Installer/Windows/InstallRequestMessage.cs index 7a074df68614..73fd7d2eed26 100644 --- a/src/Cli/dotnet/Installer/Windows/InstallRequestMessage.cs +++ b/src/Cli/dotnet/Installer/Windows/InstallRequestMessage.cs @@ -136,6 +136,12 @@ public string WorkloadSetVersion get; set; } + public Dictionary GlobalJsonWorkloadSetVersions + { + get; + set; + } + /// /// Converts a deserialized array of bytes into an . /// diff --git a/src/Cli/dotnet/Installer/Windows/InstallRequestType.cs b/src/Cli/dotnet/Installer/Windows/InstallRequestType.cs index 151644401868..b37d2b6f88ce 100644 --- a/src/Cli/dotnet/Installer/Windows/InstallRequestType.cs +++ b/src/Cli/dotnet/Installer/Windows/InstallRequestType.cs @@ -74,5 +74,10 @@ public enum InstallRequestType /// Changes the workload set version /// AdjustWorkloadSetVersion, + + /// + /// Open workload roots file, which keeps track of workload sets that are specified in global.json files + /// + OpenWorkloadRootsFile, } } diff --git a/src/Cli/dotnet/Installer/Windows/InstallResponseMessage.cs b/src/Cli/dotnet/Installer/Windows/InstallResponseMessage.cs index 4030a5c23cba..d98e3a9d7b61 100644 --- a/src/Cli/dotnet/Installer/Windows/InstallResponseMessage.cs +++ b/src/Cli/dotnet/Installer/Windows/InstallResponseMessage.cs @@ -29,7 +29,7 @@ public uint Error } /// - /// The HRESULT of the requested operaiton that failed. + /// The HRESULT of the requested operation that failed. /// public int HResult { @@ -37,6 +37,12 @@ public int HResult set; } + public Dictionary GlobalJsonWorkloadSetVersions + { + get; + set; + } + /// /// if both and indicates /// a success result. diff --git a/src/Cli/dotnet/commands/InstallingWorkloadCommand.cs b/src/Cli/dotnet/commands/InstallingWorkloadCommand.cs index d5ab676fce1c..a226cc594244 100644 --- a/src/Cli/dotnet/commands/InstallingWorkloadCommand.cs +++ b/src/Cli/dotnet/commands/InstallingWorkloadCommand.cs @@ -273,6 +273,11 @@ protected void UpdateWorkloadManifests(WorkloadHistoryRecorder recorder, ITransa } _workloadResolver.RefreshWorkloadManifests(); + + if (_workloadSetVersionFromGlobalJson != null) + { + // TODO: Record GC Root for this global.json file + } }, rollback: () => { diff --git a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs new file mode 100644 index 000000000000..a244df794f1f --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs @@ -0,0 +1,43 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.NET.Sdk.WorkloadManifestReader; + +namespace Microsoft.DotNet.Workloads.Workload +{ + internal class GlobalJsonWorkloadSetsFile + { + string _path; + + public GlobalJsonWorkloadSetsFile(SdkFeatureBand sdkFeatureBand, string dotnetDir) + { + _path = Path.Combine(WorkloadInstallType.GetInstallStateFolder(sdkFeatureBand, dotnetDir), "default.json"); + } + + public void RecordWorkloadSetInGlobalJson(string globalJsonPath, string workloadSetVersion) + { + using (var accessor = GetAccessor()) + { + accessor.GlobalJsonWorkloadSetVersions[globalJsonPath] = workloadSetVersion; + } + } + + public Accessor GetAccessor() + { + throw new NotImplementedException(); + } + + public class Accessor : IDisposable + { + // Key is path to global.json file, value is workload set version + public Dictionary GlobalJsonWorkloadSetVersions { get; set; } + + public void Dispose() => throw new NotImplementedException(); + } + } +} diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs b/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs index 69f1c8afd35f..32cccbd9c0d9 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs @@ -57,6 +57,17 @@ internal interface IInstaller : IWorkloadManifestInstaller void SaveInstallStateManifestVersions(SdkFeatureBand sdkFeatureBand, Dictionary manifestContents); void UpdateInstallMode(SdkFeatureBand sdkFeatureBand, bool? newMode); + + // This is redundant with UpdateWorkloadSetsInGlobalJson, probably we don't need it + //void RecordWorkloadSetInGlobalJson(SdkFeatureBand sdkFeatureBand, string globalJsonPath, string workloadSetVersion); + + IWorkloadSetRootUpdater UpdateWorkloadSetsInGlobalJson(SdkFeatureBand sdkFeatureBand); + + public interface IWorkloadSetRootUpdater : IDisposable + { + // Key is path to global.json file, value is workload set version + public Dictionary GlobalJsonWorkloadSetVersions { get; } + } } // Interface to pass to workload manifest updater diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs b/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs index b2464ef9085c..5a9f5b9d6d5c 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs @@ -13,6 +13,7 @@ using Microsoft.Win32; using Microsoft.Win32.Msi; using NuGet.Versioning; +using static Microsoft.DotNet.Workloads.Workload.Install.IInstaller; using static Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver; namespace Microsoft.DotNet.Installer.Windows @@ -30,6 +31,14 @@ internal abstract class MsiInstallerBase : InstallerBase /// private string _dotNetHome; + private Dictionary _openGCRootFiles = new(); + + private JsonSerializerOptions _jsonSerializerOptions = new JsonSerializerOptions() + { + WriteIndented = true, + DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull + }; + /// /// Full path to the root directory for storing workload data. /// @@ -256,6 +265,40 @@ public void AdjustWorkloadSetInInstallState(SdkFeatureBand sdkFeatureBand, strin } } + protected Dictionary OpenWorkloadRootsFile(SdkFeatureBand sdkFeatureBand) + { + Elevate(); + + if (IsElevated) + { + if (_openGCRootFiles.ContainsKey(sdkFeatureBand)) + { + throw new InvalidOperationException($"GCRoots file for {sdkFeatureBand} is already open."); + } + + string path = Path.Combine(WorkloadInstallType.GetInstallStateFolder(sdkFeatureBand, DotNetHome), "globaljsonworkloadsets.json"); + var fileStream = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); + _openGCRootFiles[sdkFeatureBand] = fileStream; + return JsonSerializer.Deserialize>(fileStream, _jsonSerializerOptions); + } + else if (IsClient) + { + InstallResponseMessage response = Dispatcher.SendOpenWorkloadRootsFileRequest(sdkFeatureBand); + ExitOnFailure(response, "Failed to open workload roots file"); + return response.GlobalJsonWorkloadSetVersions; + } + else + { + throw new InvalidOperationException($"Invalid configuration: elevated: {IsElevated}, client: {IsClient}"); + } + } + + protected void CloseWorkloadRootsFile(SdkFeatureBand sdkFeatureBand, Dictionary globalJsonWorkloadSetVersions) + { + throw new NotImplementedException(); + } + + /// /// Installs the specified MSI. /// diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs index 7bce94dadfe2..7fde511160b0 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs @@ -18,6 +18,7 @@ using NuGet.Common; using NuGet.Packaging.Signing; using NuGet.Versioning; +using static Microsoft.DotNet.Workloads.Workload.Install.IInstaller; using static Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver; namespace Microsoft.DotNet.Workloads.Workload.Install @@ -1107,5 +1108,31 @@ void IInstaller.UpdateInstallMode(SdkFeatureBand sdkFeatureBand, bool? newMode) string newModeString = newMode == null ? "" : newMode.Value ? WorkloadConfigCommandParser.UpdateMode_WorkloadSet : WorkloadConfigCommandParser.UpdateMode_Manifests; Reporter.WriteLine(string.Format(LocalizableStrings.UpdatedWorkloadMode, newModeString)); } + + public IWorkloadSetRootUpdater UpdateWorkloadSetsInGlobalJson(SdkFeatureBand sdkFeatureBand) + { + // TODO: Create a copy here (or somewhere else) so the close implementation can check if anything has been changed? + var workloadSetsInGlobalJson = OpenWorkloadRootsFile(sdkFeatureBand); + + return new WorkloadSetRootUpdater(workloadSetsInGlobalJson, () => + { + CloseWorkloadRootsFile(sdkFeatureBand, workloadSetsInGlobalJson); + }); + } + + class WorkloadSetRootUpdater : IWorkloadSetRootUpdater + { + Action _disposeFunc; + + public WorkloadSetRootUpdater(Dictionary globalJsonWorkloadSetVersions, Action disposeFunc) + { + GlobalJsonWorkloadSetVersions = globalJsonWorkloadSetVersions; + _disposeFunc = disposeFunc; + } + + public Dictionary GlobalJsonWorkloadSetVersions { get; } + + public void Dispose() => _disposeFunc(); + } } } From aaf05b5f1f3559a99bdf2e7adadfeeee40d14cd7 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Sun, 28 Jul 2024 16:46:17 -0400 Subject: [PATCH 060/209] Add code to track global.json workload set GC roots --- .../Windows/InstallMessageDispatcher.cs | 17 ++++- .../Windows/InstallRequestMessage.cs | 12 ++-- .../Installer/Windows/InstallRequestType.cs | 9 ++- .../commands/InstallingWorkloadCommand.cs | 3 +- .../GlobalJsonWorkloadSetFile.cs | 62 ++++++++++++++++--- .../install/FileBasedInstaller.cs | 9 +++ .../dotnet-workload/install/IInstaller.cs | 14 ++--- .../install/MsiInstallerBase.cs | 39 ++++++------ .../install/NetSdkMsiInstallerClient.cs | 27 -------- .../install/NetSdkMsiInstallerServer.cs | 15 +++++ ...toryWorkloadManifestProvider.JsonReader.cs | 2 +- .../MockPackWorkloadInstaller.cs | 10 +++ 12 files changed, 143 insertions(+), 76 deletions(-) diff --git a/src/Cli/dotnet/Installer/Windows/InstallMessageDispatcher.cs b/src/Cli/dotnet/Installer/Windows/InstallMessageDispatcher.cs index dd15f6f097af..0dc61ea54241 100644 --- a/src/Cli/dotnet/Installer/Windows/InstallMessageDispatcher.cs +++ b/src/Cli/dotnet/Installer/Windows/InstallMessageDispatcher.cs @@ -209,12 +209,23 @@ public InstallResponseMessage SendUpdateWorkloadSetRequest(SdkFeatureBand sdkFea }); } - public InstallResponseMessage SendOpenWorkloadRootsFileRequest(SdkFeatureBand sdkFeatureBand) + public InstallResponseMessage SendRecordWorkloadSetInGlobalJsonRequest(SdkFeatureBand sdkFeatureBand, string globalJsonPath, string workloadSetVersion) { return Send(new InstallRequestMessage { - RequestType = InstallRequestType.OpenWorkloadRootsFile, - SdkFeatureBand = sdkFeatureBand.ToString() + RequestType = InstallRequestType.RecordWorkloadSetInGlobalJson, + SdkFeatureBand = sdkFeatureBand.ToString(), + GlobalJsonPath = globalJsonPath, + WorkloadSetVersion = workloadSetVersion, + }); + } + + public InstallResponseMessage SendGetGlobalJsonWorkloadSetVersionsRequest(SdkFeatureBand sdkFeatureBand) + { + return Send(new InstallRequestMessage + { + RequestType = InstallRequestType.RecordWorkloadSetInGlobalJson, + SdkFeatureBand = sdkFeatureBand.ToString(), }); } } diff --git a/src/Cli/dotnet/Installer/Windows/InstallRequestMessage.cs b/src/Cli/dotnet/Installer/Windows/InstallRequestMessage.cs index 73fd7d2eed26..13276a527269 100644 --- a/src/Cli/dotnet/Installer/Windows/InstallRequestMessage.cs +++ b/src/Cli/dotnet/Installer/Windows/InstallRequestMessage.cs @@ -129,17 +129,19 @@ public bool? UseWorkloadSets } /// - /// The workload set version + /// The path to a global.json file that specified a workload set version /// - public string WorkloadSetVersion + public string GlobalJsonPath { get; set; } - public Dictionary GlobalJsonWorkloadSetVersions + /// + /// The workload set version + /// + public string WorkloadSetVersion { - get; - set; + get; set; } /// diff --git a/src/Cli/dotnet/Installer/Windows/InstallRequestType.cs b/src/Cli/dotnet/Installer/Windows/InstallRequestType.cs index b37d2b6f88ce..6fa347e224b6 100644 --- a/src/Cli/dotnet/Installer/Windows/InstallRequestType.cs +++ b/src/Cli/dotnet/Installer/Windows/InstallRequestType.cs @@ -76,8 +76,13 @@ public enum InstallRequestType AdjustWorkloadSetVersion, /// - /// Open workload roots file, which keeps track of workload sets that are specified in global.json files + /// Record a workload set referenced by global.json in workload roots file /// - OpenWorkloadRootsFile, + RecordWorkloadSetInGlobalJson, + + /// + /// Remove outdated entries from the global.json workload roots file and then return its contents + /// + GetGlobalJsonWorkloadSetVersions, } } diff --git a/src/Cli/dotnet/commands/InstallingWorkloadCommand.cs b/src/Cli/dotnet/commands/InstallingWorkloadCommand.cs index a226cc594244..39152b02200f 100644 --- a/src/Cli/dotnet/commands/InstallingWorkloadCommand.cs +++ b/src/Cli/dotnet/commands/InstallingWorkloadCommand.cs @@ -276,7 +276,8 @@ protected void UpdateWorkloadManifests(WorkloadHistoryRecorder recorder, ITransa if (_workloadSetVersionFromGlobalJson != null) { - // TODO: Record GC Root for this global.json file + // Record GC Root for this global.json file + _workloadInstaller.RecordWorkloadSetInGlobalJson(_sdkFeatureBand, _globalJsonPath, _workloadSetVersionFromGlobalJson); } }, rollback: () => diff --git a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs index a244df794f1f..8b53d8cc8c31 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs @@ -4,7 +4,9 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.CompilerServices; using System.Text; +using System.Text.Json; using System.Threading.Tasks; using Microsoft.NET.Sdk.WorkloadManifestReader; @@ -14,30 +16,70 @@ internal class GlobalJsonWorkloadSetsFile { string _path; + private static JsonSerializerOptions _jsonSerializerOptions = new JsonSerializerOptions() + { + WriteIndented = true, + DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull + }; + public GlobalJsonWorkloadSetsFile(SdkFeatureBand sdkFeatureBand, string dotnetDir) { - _path = Path.Combine(WorkloadInstallType.GetInstallStateFolder(sdkFeatureBand, dotnetDir), "default.json"); + _path = Path.Combine(WorkloadInstallType.GetInstallStateFolder(sdkFeatureBand, dotnetDir), "globaljsonworkloadsets.json"); } public void RecordWorkloadSetInGlobalJson(string globalJsonPath, string workloadSetVersion) { - using (var accessor = GetAccessor()) + using (var fileStream = File.Open(_path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) { - accessor.GlobalJsonWorkloadSetVersions[globalJsonPath] = workloadSetVersion; + var globalJsonWorkloadSetVersions = JsonSerializer.Deserialize>(fileStream, _jsonSerializerOptions); + globalJsonWorkloadSetVersions[globalJsonPath] = workloadSetVersion; + fileStream.Seek(0, SeekOrigin.Begin); + JsonSerializer.Serialize(fileStream, globalJsonWorkloadSetVersions, _jsonSerializerOptions); } } - public Accessor GetAccessor() + public Dictionary GetGlobalJsonWorkloadSetVersions() { - throw new NotImplementedException(); + using (var fileStream = File.Open(_path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) + { + var globalJsonWorkloadSetVersions = JsonSerializer.Deserialize>(fileStream, _jsonSerializerOptions); + bool updated = false; + + // Create copy of dictionary for iteration so we can modify the original in the loop + foreach (var kvp in new Dictionary(globalJsonWorkloadSetVersions)) + { + var updatedVersion = GetWorkloadVersionFromGlobalJson(kvp.Key); + // If the version in global.json has changed, we remove it from the GC root file rather than updating it. + // This avoids having workload sets in the GC Root file which may not be installed, which makes + // garbage collection easier + if (updatedVersion == null || updatedVersion != kvp.Value) + { + updated = true; + globalJsonWorkloadSetVersions.Remove(kvp.Key); + } + } + + if (updated) + { + fileStream.Seek(0, SeekOrigin.Begin); + JsonSerializer.Serialize(fileStream, globalJsonWorkloadSetVersions, _jsonSerializerOptions); + } + + return globalJsonWorkloadSetVersions; + } } - public class Accessor : IDisposable + string GetWorkloadVersionFromGlobalJson(string globalJsonPath) { - // Key is path to global.json file, value is workload set version - public Dictionary GlobalJsonWorkloadSetVersions { get; set; } - - public void Dispose() => throw new NotImplementedException(); + try + { + return SdkDirectoryWorkloadManifestProvider.GlobalJsonReader.GetWorkloadVersionFromGlobalJson(globalJsonPath); + } + catch (SdkDirectoryWorkloadManifestProvider.JsonFormatException) + { + // If Json file is malformed then treat it as if it doesn't specify a workload set version + return null; + } } } } diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs b/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs index efb6e8654d93..a41bb685216f 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs @@ -511,6 +511,15 @@ private void UpdateInstallState(SdkFeatureBand sdkFeatureBand, Action GetGlobalJsonWorkloadSetVersions(SdkFeatureBand sdkFeatureBand) + { + return new GlobalJsonWorkloadSetsFile(sdkFeatureBand, _workloadRootDir).GetGlobalJsonWorkloadSetVersions(); + } + /// /// Remove all workload installation records that aren't from Visual Studio. /// diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs b/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs index 32cccbd9c0d9..cede71981c68 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs @@ -58,16 +58,12 @@ internal interface IInstaller : IWorkloadManifestInstaller void UpdateInstallMode(SdkFeatureBand sdkFeatureBand, bool? newMode); - // This is redundant with UpdateWorkloadSetsInGlobalJson, probably we don't need it - //void RecordWorkloadSetInGlobalJson(SdkFeatureBand sdkFeatureBand, string globalJsonPath, string workloadSetVersion); + void RecordWorkloadSetInGlobalJson(SdkFeatureBand sdkFeatureBand, string globalJsonPath, string workloadSetVersion); - IWorkloadSetRootUpdater UpdateWorkloadSetsInGlobalJson(SdkFeatureBand sdkFeatureBand); - - public interface IWorkloadSetRootUpdater : IDisposable - { - // Key is path to global.json file, value is workload set version - public Dictionary GlobalJsonWorkloadSetVersions { get; } - } + // Key is path to global.json file, value is workload set version + // This method should update the GC roots file first by removing any outdated entries from it, + // then return its contents + Dictionary GetGlobalJsonWorkloadSetVersions(SdkFeatureBand sdkFeatureBand); } // Interface to pass to workload manifest updater diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs b/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs index 5a9f5b9d6d5c..a89c7ce37b5d 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs @@ -31,8 +31,6 @@ internal abstract class MsiInstallerBase : InstallerBase /// private string _dotNetHome; - private Dictionary _openGCRootFiles = new(); - private JsonSerializerOptions _jsonSerializerOptions = new JsonSerializerOptions() { WriteIndented = true, @@ -265,27 +263,18 @@ public void AdjustWorkloadSetInInstallState(SdkFeatureBand sdkFeatureBand, strin } } - protected Dictionary OpenWorkloadRootsFile(SdkFeatureBand sdkFeatureBand) + public void RecordWorkloadSetInGlobalJson(SdkFeatureBand sdkFeatureBand, string globalJsonPath, string workloadSetVersion) { Elevate(); if (IsElevated) { - if (_openGCRootFiles.ContainsKey(sdkFeatureBand)) - { - throw new InvalidOperationException($"GCRoots file for {sdkFeatureBand} is already open."); - } - - string path = Path.Combine(WorkloadInstallType.GetInstallStateFolder(sdkFeatureBand, DotNetHome), "globaljsonworkloadsets.json"); - var fileStream = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); - _openGCRootFiles[sdkFeatureBand] = fileStream; - return JsonSerializer.Deserialize>(fileStream, _jsonSerializerOptions); + new GlobalJsonWorkloadSetsFile(sdkFeatureBand, DotNetHome).RecordWorkloadSetInGlobalJson(globalJsonPath, workloadSetVersion); } else if (IsClient) { - InstallResponseMessage response = Dispatcher.SendOpenWorkloadRootsFileRequest(sdkFeatureBand); - ExitOnFailure(response, "Failed to open workload roots file"); - return response.GlobalJsonWorkloadSetVersions; + InstallResponseMessage response = Dispatcher.SendRecordWorkloadSetInGlobalJsonRequest(sdkFeatureBand, globalJsonPath, workloadSetVersion); + ExitOnFailure(response, "Failed to record workload set version in GC Roots file."); } else { @@ -293,11 +282,25 @@ protected Dictionary OpenWorkloadRootsFile(SdkFeatureBand sdkFea } } - protected void CloseWorkloadRootsFile(SdkFeatureBand sdkFeatureBand, Dictionary globalJsonWorkloadSetVersions) + public Dictionary GetGlobalJsonWorkloadSetVersions(SdkFeatureBand sdkFeatureBand) { - throw new NotImplementedException(); - } + Elevate(); + if (IsElevated) + { + return new GlobalJsonWorkloadSetsFile(sdkFeatureBand, DotNetHome).GetGlobalJsonWorkloadSetVersions(); + } + else if (IsClient) + { + InstallResponseMessage response = Dispatcher.SendGetGlobalJsonWorkloadSetVersionsRequest(sdkFeatureBand); + ExitOnFailure(response, "Failed to get global.json GC roots"); + return response.GlobalJsonWorkloadSetVersions; + } + else + { + throw new InvalidOperationException($"Invalid configuration: elevated: {IsElevated}, client: {IsClient}"); + } + } /// /// Installs the specified MSI. diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs index 7fde511160b0..7bce94dadfe2 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs @@ -18,7 +18,6 @@ using NuGet.Common; using NuGet.Packaging.Signing; using NuGet.Versioning; -using static Microsoft.DotNet.Workloads.Workload.Install.IInstaller; using static Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver; namespace Microsoft.DotNet.Workloads.Workload.Install @@ -1108,31 +1107,5 @@ void IInstaller.UpdateInstallMode(SdkFeatureBand sdkFeatureBand, bool? newMode) string newModeString = newMode == null ? "" : newMode.Value ? WorkloadConfigCommandParser.UpdateMode_WorkloadSet : WorkloadConfigCommandParser.UpdateMode_Manifests; Reporter.WriteLine(string.Format(LocalizableStrings.UpdatedWorkloadMode, newModeString)); } - - public IWorkloadSetRootUpdater UpdateWorkloadSetsInGlobalJson(SdkFeatureBand sdkFeatureBand) - { - // TODO: Create a copy here (or somewhere else) so the close implementation can check if anything has been changed? - var workloadSetsInGlobalJson = OpenWorkloadRootsFile(sdkFeatureBand); - - return new WorkloadSetRootUpdater(workloadSetsInGlobalJson, () => - { - CloseWorkloadRootsFile(sdkFeatureBand, workloadSetsInGlobalJson); - }); - } - - class WorkloadSetRootUpdater : IWorkloadSetRootUpdater - { - Action _disposeFunc; - - public WorkloadSetRootUpdater(Dictionary globalJsonWorkloadSetVersions, Action disposeFunc) - { - GlobalJsonWorkloadSetVersions = globalJsonWorkloadSetVersions; - _disposeFunc = disposeFunc; - } - - public Dictionary GlobalJsonWorkloadSetVersions { get; } - - public void Dispose() => _disposeFunc(); - } } } diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerServer.cs b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerServer.cs index 9cfdf5711cdb..a1bda37df53c 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerServer.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerServer.cs @@ -114,6 +114,21 @@ public void Run() Dispatcher.ReplySuccess($"Updated workload set version in install state to {request.WorkloadSetVersion}."); break; + case InstallRequestType.RecordWorkloadSetInGlobalJson: + RecordWorkloadSetInGlobalJson(new SdkFeatureBand(request.SdkFeatureBand), request.GlobalJsonPath, request.WorkloadSetVersion); + Dispatcher.ReplySuccess($"Recorded workload set {request.WorkloadSetVersion} in {request.GlobalJsonPath} for SDK feature band {request.SdkFeatureBand}."); + break; + + case InstallRequestType.GetGlobalJsonWorkloadSetVersions: + Dispatcher.Reply(new InstallResponseMessage() + { + Message = "Got global.json GC roots", + HResult = Win32.Msi.Error.S_OK, + Error = Win32.Msi.Error.SUCCESS, + GlobalJsonWorkloadSetVersions = GetGlobalJsonWorkloadSetVersions(new SdkFeatureBand(request.SdkFeatureBand)) + }); + break; + default: throw new InvalidOperationException($"Unknown message request: {(int)request.RequestType}"); } diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.JsonReader.cs b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.JsonReader.cs index 098bccf40955..b1198f9fa0e7 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.JsonReader.cs +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.JsonReader.cs @@ -83,7 +83,7 @@ private static void ThrowUnexpectedTokenException(ref Utf8JsonStreamReader reade } [Serializable] - internal class JsonFormatException : Exception + public class JsonFormatException : Exception { public JsonFormatException() { } public JsonFormatException(string messageFormat, params object?[] args) : base(string.Format(messageFormat, args)) { } diff --git a/test/dotnet-workload-install.Tests/MockPackWorkloadInstaller.cs b/test/dotnet-workload-install.Tests/MockPackWorkloadInstaller.cs index d701e1db628a..c06827f0812c 100644 --- a/test/dotnet-workload-install.Tests/MockPackWorkloadInstaller.cs +++ b/test/dotnet-workload-install.Tests/MockPackWorkloadInstaller.cs @@ -232,6 +232,16 @@ public void SaveInstallStateManifestVersions(SdkFeatureBand sdkFeatureBand, Dict installStateContents.Manifests = manifestContents; File.WriteAllText(path, installStateContents.ToString()); } + + public void RecordWorkloadSetInGlobalJson(SdkFeatureBand sdkFeatureBand, string globalJsonPath, string workloadSetVersion) + { + + } + + public Dictionary GetGlobalJsonWorkloadSetVersions(SdkFeatureBand sdkFeatureBand) + { + return new(); + } } internal class MockInstallationRecordRepository : IWorkloadInstallationRecordRepository From fda4d2c47600ca2fdbdb151669b51ef9ea9fa79e Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Sun, 28 Jul 2024 20:23:52 -0400 Subject: [PATCH 061/209] Handle workload sets in WorkloadGarbageCollector Installers still need to be updated to do the actual collection --- .../GlobalJsonWorkloadSetFile.cs | 20 +++++++++++- .../install/FileBasedInstaller.cs | 7 +++- .../dotnet-workload/install/IInstaller.cs | 5 --- .../install/NetSdkMsiInstallerClient.cs | 8 +++-- .../install/WorkloadGarbageCollector.cs | 32 +++++++++---------- 5 files changed, 47 insertions(+), 25 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs index 8b53d8cc8c31..7459c4ad0af6 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs @@ -40,8 +40,26 @@ public void RecordWorkloadSetInGlobalJson(string globalJsonPath, string workload public Dictionary GetGlobalJsonWorkloadSetVersions() { - using (var fileStream = File.Open(_path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) + // If the file doesn't exist, we don't need to create it + FileStream OpenFile() { + try + { + return File.Open(_path, FileMode.Open, FileAccess.ReadWrite, FileShare.None); + } + catch (FileNotFoundException) + { + return null; + } + } + + using (var fileStream = OpenFile()) + { + if (fileStream == null) + { + return new Dictionary(); + } + var globalJsonWorkloadSetVersions = JsonSerializer.Deserialize>(fileStream, _jsonSerializerOptions); bool updated = false; diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs b/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs index a41bb685216f..cef46d2f9702 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs @@ -343,7 +343,10 @@ public IEnumerable GetDownloads(IEnumerable worklo public void GarbageCollect(Func getResolverForWorkloadSet, DirectoryPath? offlineCache = null, bool cleanAllPacks = false) { - var garbageCollector = new WorkloadGarbageCollector(_workloadRootDir, _sdkFeatureBand, _installationRecordRepository.GetInstalledWorkloads(_sdkFeatureBand), getResolverForWorkloadSet, Reporter.Verbose); + var globalJsonWorkloadSetVersions = GetGlobalJsonWorkloadSetVersions(_sdkFeatureBand); + + var garbageCollector = new WorkloadGarbageCollector(_workloadRootDir, _sdkFeatureBand, _installationRecordRepository.GetInstalledWorkloads(_sdkFeatureBand), + getResolverForWorkloadSet, globalJsonWorkloadSetVersions, Reporter.Verbose); garbageCollector.Collect(); var featureBandsWithWorkloadInstallRecords = _installationRecordRepository.GetFeatureBandsWithInstallationRecords(); @@ -375,6 +378,8 @@ public void GarbageCollect(Func getResolverForWorkloa // In that case just ignore it, as the CLI doesn't manage that install Directory.Delete(workloadSetDirectory, true); } + + // TODO: Garbage collect workload sets } // Garbage collect workload manifests diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs b/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs index cede71981c68..7267a5492bc5 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/IInstaller.cs @@ -59,11 +59,6 @@ internal interface IInstaller : IWorkloadManifestInstaller void UpdateInstallMode(SdkFeatureBand sdkFeatureBand, bool? newMode); void RecordWorkloadSetInGlobalJson(SdkFeatureBand sdkFeatureBand, string globalJsonPath, string workloadSetVersion); - - // Key is path to global.json file, value is workload set version - // This method should update the GC roots file first by removing any outdated entries from it, - // then return its contents - Dictionary GetGlobalJsonWorkloadSetVersions(SdkFeatureBand sdkFeatureBand); } // Interface to pass to workload manifest updater diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs index 7bce94dadfe2..ec974624286d 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs @@ -131,12 +131,16 @@ public void GarbageCollect(Func getResolverForWorkloa Log?.LogMessage($"Starting garbage collection."); Log?.LogMessage($"Garbage Collection Mode: CleanAllPacks={cleanAllPacks}."); - var garbageCollector = new WorkloadGarbageCollector(DotNetHome, _sdkFeatureBand, RecordRepository.GetInstalledWorkloads(_sdkFeatureBand), getResolverForWorkloadSet, new SetupLogReporter(Log)); - garbageCollector.Collect(); + var globalJsonWorkloadSetVersions = GetGlobalJsonWorkloadSetVersions(_sdkFeatureBand); + var garbageCollector = new WorkloadGarbageCollector(DotNetHome, _sdkFeatureBand, RecordRepository.GetInstalledWorkloads(_sdkFeatureBand), + getResolverForWorkloadSet, globalJsonWorkloadSetVersions, new SetupLogReporter(Log)); + garbageCollector.Collect(); IEnumerable installedFeatureBands = GetInstalledFeatureBands(Log); + // TODO: Garbage collect workload sets + List manifestsToRemove = new(); var installedWorkloadManifests = GetWorkloadManifestRecords(); diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs b/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs index 62d7e16cac48..459db778c4d8 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs @@ -30,19 +30,25 @@ internal class WorkloadGarbageCollector string _dotnetDir; IEnumerable _installedWorkloads; Func _getResolverForWorkloadSet; + Dictionary _globalJsonWorkloadSetVersions; IReporter _verboseReporter; public HashSet WorkloadSetsToKeep = new(); public HashSet<(ManifestId id, ManifestVersion version, SdkFeatureBand featureBand)> ManifestsToKeep = new(); public HashSet<(WorkloadPackId id, string version)> PacksToKeep = new(); + // globalJsonWorkloadSetVersions should be the contents of the GC Roots file. The keys should be paths to global.json files, and the values + // should be the workload set version referred to by that file. Before calling this method, the installer implementation should update the + // file by removing any outdated entries in it (where ie the global.json file doesn't exist or no longer specifies the same worlkload set + // version). public WorkloadGarbageCollector(string dotnetDir, SdkFeatureBand sdkFeatureBand, IEnumerable installedWorkloads, Func getResolverForWorkloadSet, - IReporter verboseReporter) + Dictionary globalJsonWorkloadSetVersions, IReporter verboseReporter) { _dotnetDir = dotnetDir; _sdkFeatureBand = sdkFeatureBand; _installedWorkloads = installedWorkloads; _getResolverForWorkloadSet = getResolverForWorkloadSet; + _globalJsonWorkloadSetVersions = globalJsonWorkloadSetVersions; _verboseReporter = verboseReporter ?? Reporter.NullReporter; } @@ -68,18 +74,10 @@ void GarbageCollectWorkloadSets() // - Workload sets from global.json GC roots (after scanning to see if GC root data is up-to-date) // - Baseline workload sets - // What happens if there's a later SDK installed? Could a workload set from a previous band be pinned to a later SDK? - var resolver = GetResolver(); var installedWorkloadSets = resolver.GetWorkloadManifestProvider().GetAvailableWorkloadSets(); - foreach (var set in installedWorkloadSets.Keys) - { - WorkloadSetsToKeep.Add(set); - _verboseReporter.WriteLine($"GC: Keeping workload set version {set} because workload set GC isn't implemented yet."); - } - var installStateFilePath = Path.Combine(WorkloadInstallType.GetInstallStateFolder(_sdkFeatureBand, _dotnetDir), "default.json"); if (File.Exists(installStateFilePath)) { @@ -102,21 +100,23 @@ void GarbageCollectWorkloadSets() } } + foreach (var kvp in _globalJsonWorkloadSetVersions) + { + WorkloadSetsToKeep.Add(kvp.Value); + _verboseReporter.WriteLine($"GC: Keeping workload set version {kvp.Value} because it is referenced by {kvp.Value}."); + } + + // Add baseline workload set versions for installed SDKs to list that shouldn't be collected. They should stay installed until the SDK is uninstalled foreach (var workloadSet in installedWorkloadSets.Values) { if (workloadSet.IsBaselineWorkloadSet) { + // TODO: we shouldn't necessarily keep packs from baseline workload sets that aren't active, otherwise we'll never collect those packs WorkloadSetsToKeep.Add(workloadSet.Version); _verboseReporter.WriteLine($"GC: Keeping baseline workload set version {workloadSet.Version}"); } } - - // TODO: - // Scan workload set GC roots, which correspond to global.json files that pinned to a workload set. For each one, check to see if it's up-to-date. If the global.json file - // doesn't exist anymore (or doesn't specify a workload set version), delete the GC root. If the workload set version in global.json has changed, update the GC root. - // After updating GC roots, add workload sets listed in GC roots to list of workload sets to keep - } void GarbageCollectWorkloadManifestsAndPacks() @@ -159,7 +159,7 @@ void GarbageCollectWorkloadManifestsAndPacks() } } - // NOTE: We should not collect baseline workload manifests. When we have a corresponding baseline manifest, this will happen, as we have logic + // NOTE: We should not collect baseline workload manifests. When we have a corresponding baseline workload set, this will happen, as we have logic // to avoid collecting baseline manifests. Until then, it will be possible for the baseline manifests to be collected. } } From 484995da81f8c0a93f2d2feb3e440162f21f066c Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Mon, 29 Jul 2024 00:54:12 -0400 Subject: [PATCH 062/209] Handle workload set garbage collection for file based installs --- .../install/FileBasedInstaller.cs | 81 ++++++++++++++++--- .../install/LocalizableStrings.resx | 3 + .../install/xlf/LocalizableStrings.cs.xlf | 5 ++ .../install/xlf/LocalizableStrings.de.xlf | 5 ++ .../install/xlf/LocalizableStrings.es.xlf | 5 ++ .../install/xlf/LocalizableStrings.fr.xlf | 5 ++ .../install/xlf/LocalizableStrings.it.xlf | 5 ++ .../install/xlf/LocalizableStrings.ja.xlf | 5 ++ .../install/xlf/LocalizableStrings.ko.xlf | 5 ++ .../install/xlf/LocalizableStrings.pl.xlf | 5 ++ .../install/xlf/LocalizableStrings.pt-BR.xlf | 5 ++ .../install/xlf/LocalizableStrings.ru.xlf | 5 ++ .../install/xlf/LocalizableStrings.tr.xlf | 5 ++ .../xlf/LocalizableStrings.zh-Hans.xlf | 5 ++ .../xlf/LocalizableStrings.zh-Hant.xlf | 5 ++ 15 files changed, 137 insertions(+), 12 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs b/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs index cef46d2f9702..9b6b0b15aeec 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs @@ -360,26 +360,49 @@ public void GarbageCollect(Func getResolverForWorkloa // Garbage collect workload sets var installedWorkloadSets = _workloadResolver.GetWorkloadManifestProvider().GetAvailableWorkloadSets(); - var manifestInstallDirForFeatureBand = GetManifestInstallDirForFeatureBand(_sdkFeatureBand.ToString()); - string workloadSetsDirectory = Path.Combine(manifestInstallDirForFeatureBand, SdkDirectoryWorkloadManifestProvider.WorkloadSetsFolderName); - + Dictionary<(string workloadSetVersion, SdkFeatureBand workloadSetFeatureBand), List> workloadSetInstallRecords = GetAllWorkloadSetInstallRecords(); foreach ((string workloadSetVersion, _) in installedWorkloadSets) { - if (garbageCollector.WorkloadSetsToKeep.Contains(workloadSetVersion)) + WorkloadSet.WorkloadSetVersionToWorkloadSetPackageVersion(workloadSetVersion, out var workloadSetFeatureBand); + List referencingFeatureBands; + if (!workloadSetInstallRecords.TryGetValue((workloadSetVersion, workloadSetFeatureBand), out referencingFeatureBands)) { - // Don't uninstall this workload set + // If there are no install records for a workload set that is on disk, then ignore it. It is probably a baseline workload set. continue; } + List featureBandsToRemove = new(); + foreach (var referencingFeatureBand in referencingFeatureBands) + { + if (!installedSdkFeatureBands.Contains(referencingFeatureBand)) + { + // If an SDK feature band is no longer installed, manifests it references can be garbage collected + featureBandsToRemove.Add(referencingFeatureBand); + } - string workloadSetDirectory = Path.Combine(workloadSetsDirectory, workloadSetVersion); - if (Directory.Exists(workloadSetDirectory)) + if (referencingFeatureBand.Equals(_sdkFeatureBand) && !garbageCollector.WorkloadSetsToKeep.Contains(workloadSetVersion)) + { + // For current feature band, garbage collect workload sets that the garbage collector didn't mark as ones to keep + featureBandsToRemove.Add(referencingFeatureBand); + } + } + + foreach (var featureBandToRemove in featureBandsToRemove) { - // If the directory doesn't exist, the workload set is probably from a directory specified via the DOTNETSDK_WORKLOAD_MANIFEST_ROOTS environment variable - // In that case just ignore it, as the CLI doesn't manage that install - Directory.Delete(workloadSetDirectory, true); + RemoveWorkloadSetInstallationRecord(workloadSetVersion, workloadSetFeatureBand, featureBandToRemove); } - // TODO: Garbage collect workload sets + if (featureBandsToRemove.Count == referencingFeatureBands.Count) + { + // All installation records for the workload set were removed, so it can be deleted + string workloadSetDirectory = Path.Combine(GetManifestInstallDirForFeatureBand(workloadSetFeatureBand.ToString()), SdkDirectoryWorkloadManifestProvider.WorkloadSetsFolderName, workloadSetVersion); + if (Directory.Exists(workloadSetDirectory)) + { + // If the directory doesn't exist, the workload set is probably from a directory specified via the DOTNETSDK_WORKLOAD_MANIFEST_ROOTS environment variable + // In that case just ignore it, as the CLI doesn't manage that install + _reporter.WriteLine(string.Format(LocalizableStrings.DeletingWorkloadSet, workloadSetVersion)); + Directory.Delete(workloadSetDirectory, true); + } + } } // Garbage collect workload manifests @@ -408,7 +431,7 @@ public void GarbageCollect(Func getResolverForWorkloa RemoveManifestInstallationRecord(manifestId, manifestVersion, manifestFeatureBand, featureBandToRemove); } - if (featureBandsToRemove.Count == manifestInstallRecords[(manifestId, manifestVersion, manifestFeatureBand)].Count) + if (featureBandsToRemove.Count == referencingFeatureBands.Count) { // All installation records for the manifest were removed, so we can delete the manifest _reporter.WriteLine(string.Format(LocalizableStrings.DeletingWorkloadManifest, manifestId, $"{manifestVersion}/{manifestFeatureBand}")); @@ -661,6 +684,40 @@ void RemoveWorkloadSetInstallationRecord(string workloadSetVersion, SdkFeatureBa PathUtility.DeleteFileAndEmptyParents(path, maxDirectoriesToDelete: 2); } + private Dictionary<(string workloadSetVersion, SdkFeatureBand workloadSetFeatureBand), List> GetAllWorkloadSetInstallRecords() + { + Dictionary<(string workloadSetVersion, SdkFeatureBand workloadSetFeatureBand), List> records = new(); + + var installedWorkloadSetsDir = Path.Combine(_workloadMetadataDir, InstalledWorkloadSetsDir, "v1"); + + if (!Directory.Exists(installedWorkloadSetsDir)) + { + return records; + } + + foreach (var workloadSetVersionDir in Directory.GetDirectories(installedWorkloadSetsDir)) + { + var workloadSetVersion = Path.GetFileName(workloadSetVersionDir); + foreach (var workloadSetFeatureBandDir in Directory.GetDirectories(workloadSetVersionDir)) + { + var workloadSetFeatureBand = new SdkFeatureBand(Path.GetFileName(workloadSetFeatureBandDir)); + foreach (var featureBandInstallationRecord in Directory.GetFileSystemEntries(workloadSetFeatureBandDir)) + { + var referencingFeatureBand = new SdkFeatureBand(Path.GetFileName(featureBandInstallationRecord)); + if (!records.TryGetValue((workloadSetVersion, workloadSetFeatureBand), out var referencingFeatureBands)) + { + referencingFeatureBands = new List(); + records[(workloadSetVersion, workloadSetFeatureBand)] = referencingFeatureBands; + } + + referencingFeatureBands.Add(referencingFeatureBand); + } + } + } + + return records; + } + private string GetManifestInstallRecordPath(ManifestId manifestId, ManifestVersion manifestVersion, SdkFeatureBand featureBand, SdkFeatureBand referencingFeatureBand) => Path.Combine(_workloadMetadataDir, InstalledManifestsDir, "v1", manifestId.ToString(), manifestVersion.ToString(), featureBand.ToString(), referencingFeatureBand.ToString()); diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/LocalizableStrings.resx b/src/Cli/dotnet/commands/dotnet-workload/install/LocalizableStrings.resx index 7e6b6dd5018d..cd04c02ff902 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/LocalizableStrings.resx +++ b/src/Cli/dotnet/commands/dotnet-workload/install/LocalizableStrings.resx @@ -353,6 +353,9 @@ Installing workload version {0}. + + Deleting workload version {0}. + Cannot specify a particular workload version on the command line via --version or --from-history when there is already a version specified in global.json file {0}. To update the globally installed workload version, run the command outside of the path containing that global.json file or update the version specified in the global.json file and run "dotnet workload update." diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.cs.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.cs.xlf index c183619d1c2d..1bf7d17509f5 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.cs.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.cs.xlf @@ -52,6 +52,11 @@ Probíhá odinstalace sady funkcí {0} verze {1}... + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY ADRESÁŘ diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.de.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.de.xlf index 9a0ef4029414..26d9696a83bb 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.de.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.de.xlf @@ -52,6 +52,11 @@ Das Workloadpaket {0}, Version {1}, wird deinstalliert… + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY VERZEICHNIS diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.es.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.es.xlf index 1c36327c0f7e..0103f050a368 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.es.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.es.xlf @@ -52,6 +52,11 @@ Desinstalando el paquete de carga de trabajo {0} versión{1}... + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY DIRECTORIO diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.fr.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.fr.xlf index 262d1fd57515..9bccfae1cb07 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.fr.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.fr.xlf @@ -52,6 +52,11 @@ Désinstallation de la version {1} du pack {0} de charge de travail... + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY RÉPERTOIRE diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.it.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.it.xlf index 08486a0f1f6f..41e5d4b2c4d8 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.it.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.it.xlf @@ -52,6 +52,11 @@ Disinstallazione del pacchetto del carico di lavoro {0} versione {1}in corso... + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY DIRECTORY diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ja.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ja.xlf index 69625b03d4a3..586b68b6329d 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ja.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ja.xlf @@ -52,6 +52,11 @@ ワークロード パック {0} バージョン {1} をアンインストールしています... + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY ディレクトリ diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ko.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ko.xlf index 67bc55e9f64d..09608fc1b609 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ko.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ko.xlf @@ -52,6 +52,11 @@ 워크로드 팩 {0} 버전 {1} 제거 중... + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY 디렉터리 diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.pl.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.pl.xlf index 732f158db201..9182f4b06602 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.pl.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.pl.xlf @@ -52,6 +52,11 @@ Odinstalowywanie pakietu obciążeń {0} w wersji {1}… + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY KATALOG diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.pt-BR.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.pt-BR.xlf index 87fd08333cb8..5c680d5f84a6 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.pt-BR.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.pt-BR.xlf @@ -52,6 +52,11 @@ Desinstalando o pacote de carga de trabalho {0} versão {1}... + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY DIRETÓRIO diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ru.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ru.xlf index ae601d920cae..46ed888b907c 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ru.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.ru.xlf @@ -52,6 +52,11 @@ Идет удаление пакета рабочих нагрузок {0} версии {1}... + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY КАТАЛОГ diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.tr.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.tr.xlf index e9518e983218..608ead1618ad 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.tr.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.tr.xlf @@ -52,6 +52,11 @@ {0} iş yükü paketi sürüm {1} kaldırılıyor... + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY DİZİN diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.zh-Hans.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.zh-Hans.xlf index c5d962aa3cb7..f232a778e2b9 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.zh-Hans.xlf @@ -52,6 +52,11 @@ 正在卸载工作负载包 {0} 版本 {1}… + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY 目录 diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.zh-Hant.xlf b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.zh-Hant.xlf index 1310b788e92b..ef4940131bd4 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/install/xlf/LocalizableStrings.zh-Hant.xlf @@ -52,6 +52,11 @@ 正在解除安裝工作負載套件 {0} 版本 {1}... + + Deleting workload version {0}. + Deleting workload version {0}. + + DIRECTORY 目錄 From b8c05870483b81f4694352f9e3929d8f9cf3dc43 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Tue, 30 Jul 2024 18:50:49 -0400 Subject: [PATCH 063/209] Handle baseline workload sets better in GC --- .../install/WorkloadGarbageCollector.cs | 85 +++++++++++++------ 1 file changed, 57 insertions(+), 28 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs b/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs index 459db778c4d8..ee4c024f09bf 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs @@ -11,6 +11,7 @@ using Microsoft.DotNet.Cli.Utils; using Microsoft.DotNet.NativeWrapper; using Microsoft.NET.Sdk.WorkloadManifestReader; +using NuGet.Packaging; namespace Microsoft.DotNet.Workloads.Workload.Install { @@ -37,6 +38,16 @@ internal class WorkloadGarbageCollector public HashSet<(ManifestId id, ManifestVersion version, SdkFeatureBand featureBand)> ManifestsToKeep = new(); public HashSet<(WorkloadPackId id, string version)> PacksToKeep = new(); + enum GCAction + { + Collect, + KeepWithoutPacks, + Keep, + } + + Dictionary _workloadSets = new(); + Dictionary<(ManifestId id, ManifestVersion version, SdkFeatureBand featureBand), GCAction> _manifests = new(); + // globalJsonWorkloadSetVersions should be the contents of the GC Roots file. The keys should be paths to global.json files, and the values // should be the workload set version referred to by that file. Before calling this method, the installer implementation should update the // file by removing any outdated entries in it (where ie the global.json file doesn't exist or no longer specifies the same worlkload set @@ -59,6 +70,9 @@ public void Collect() GarbageCollectWorkloadSets(); GarbageCollectWorkloadManifestsAndPacks(); + + WorkloadSetsToKeep.AddRange(_workloadSets.Where(kvp => kvp.Value != GCAction.Collect).Select(kvp => kvp.Key)); + ManifestsToKeep.AddRange(_manifests.Where(kvp => kvp.Value != GCAction.Collect).Select(kvp => kvp.Key)); } IWorkloadResolver GetResolver(string workloadSetVersion = null) @@ -70,13 +84,16 @@ void GarbageCollectWorkloadSets() { // Determine which workload sets should not be garbage collected. IInstaller implementation will be responsible for actually uninstalling the other ones (if not referenced by another feature band) // Keep the following, garbage collect all others: + // - Baseline workload sets // - Workload set if specified in rollback state file, otherwise latest installed workload set // - Workload sets from global.json GC roots (after scanning to see if GC root data is up-to-date) - // - Baseline workload sets + // Baseline workload sets and manifests should be kept, but if they aren't active, the packs should be garbage collected. + // GCAction.KeepWithoutPacks is for keeping track of this var resolver = GetResolver(); var installedWorkloadSets = resolver.GetWorkloadManifestProvider().GetAvailableWorkloadSets(); + _workloadSets = installedWorkloadSets.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.IsBaselineWorkloadSet ? GCAction.KeepWithoutPacks : GCAction.Collect); var installStateFilePath = Path.Combine(WorkloadInstallType.GetInstallStateFolder(_sdkFeatureBand, _dotnetDir), "default.json"); if (File.Exists(installStateFilePath)) @@ -85,8 +102,11 @@ void GarbageCollectWorkloadSets() var installState = InstallStateContents.FromPath(installStateFilePath); if (!string.IsNullOrEmpty(installState.WorkloadVersion)) { - WorkloadSetsToKeep.Add(installState.WorkloadVersion); - _verboseReporter.WriteLine($"GC: Keeping workload set version {installState.WorkloadVersion} because it is specified in the install state file {installStateFilePath}"); + if (installedWorkloadSets.ContainsKey(installState.WorkloadVersion)) + { + _workloadSets[installState.WorkloadVersion] = GCAction.Keep; + _verboseReporter.WriteLine($"GC: Keeping workload set version {installState.WorkloadVersion} because it is specified in the install state file {installStateFilePath}"); + } } } else @@ -95,26 +115,17 @@ void GarbageCollectWorkloadSets() if (installedWorkloadSets.Any()) { var latestWorkloadSetVersion = installedWorkloadSets.Keys.MaxBy(k => new ReleaseVersion(k)); - WorkloadSetsToKeep.Add(latestWorkloadSetVersion); + _workloadSets[latestWorkloadSetVersion] = GCAction.Keep; _verboseReporter.WriteLine($"GC: Keeping latest installed workload set version {latestWorkloadSetVersion}"); } } - foreach (var kvp in _globalJsonWorkloadSetVersions) + foreach (var (globalJsonPath, workloadSetVersion) in _globalJsonWorkloadSetVersions) { - WorkloadSetsToKeep.Add(kvp.Value); - _verboseReporter.WriteLine($"GC: Keeping workload set version {kvp.Value} because it is referenced by {kvp.Value}."); - } - - - // Add baseline workload set versions for installed SDKs to list that shouldn't be collected. They should stay installed until the SDK is uninstalled - foreach (var workloadSet in installedWorkloadSets.Values) - { - if (workloadSet.IsBaselineWorkloadSet) + if (installedWorkloadSets.ContainsKey(workloadSetVersion)) { - // TODO: we shouldn't necessarily keep packs from baseline workload sets that aren't active, otherwise we'll never collect those packs - WorkloadSetsToKeep.Add(workloadSet.Version); - _verboseReporter.WriteLine($"GC: Keeping baseline workload set version {workloadSet.Version}"); + _workloadSets[workloadSetVersion] = GCAction.Keep; + _verboseReporter.WriteLine($"GC: Keeping workload set version {workloadSetVersion} because it is referenced by {globalJsonPath}."); } } } @@ -131,31 +142,49 @@ void GarbageCollectWorkloadManifestsAndPacks() // - Any manifests listed in the rollback state file (default.json) // - The latest version of each manifest, if a workload set is not installed and there is no rollback state file - List<(IWorkloadResolver, string workloadSet)> resolvers = new(); - resolvers.Add((GetResolver(), "")); + List<(IWorkloadResolver, string workloadSet, GCAction gcAction)> resolvers = new(); + resolvers.Add((GetResolver(), "", GCAction.Keep)); // Iterate through all installed workload sets for this SDK feature band that have not been marked for garbage collection // For each manifest version listed in a workload set, add it to a list to keep - foreach (var workloadSet in WorkloadSetsToKeep) + foreach (var (workloadSet, gcAction) in _workloadSets) { - resolvers.Add((GetResolver(workloadSet), workloadSet)); + if (gcAction != GCAction.Collect) + { + resolvers.Add((GetResolver(workloadSet), workloadSet, gcAction)); + } } - foreach (var (resolver, workloadSet) in resolvers) + foreach (var (resolver, workloadSet, gcAction) in resolvers) { foreach (var manifest in resolver.GetInstalledManifests()) { _verboseReporter.WriteLine($"GC: Keeping manifest {manifest.Id} {manifest.Version}/{manifest.ManifestFeatureBand} as part of workload set {workloadSet}"); - ManifestsToKeep.Add((new ManifestId(manifest.Id), new ManifestVersion(manifest.Version), new SdkFeatureBand(manifest.ManifestFeatureBand))); + + var manifestKey = (new ManifestId(manifest.Id), new ManifestVersion(manifest.Version), new SdkFeatureBand(manifest.ManifestFeatureBand)); + GCAction existingAction; + if (!_manifests.TryGetValue(manifestKey, out existingAction)) + { + existingAction = GCAction.Collect; + } + + // Take the "greater" action, ie if a manifest would be KeepWithoutPacks with one resolver and Keep with another one, then it should be kept + if (gcAction > existingAction) + { + _manifests[manifestKey] = gcAction; + } } - foreach (var pack in _installedWorkloads.SelectMany(workloadId => resolver.GetPacksInWorkload(workloadId)) - .Select(packId => resolver.TryGetPackInfo(packId)) - .Where(pack => pack != null)) + if (gcAction == GCAction.Keep) { - _verboseReporter.WriteLine($"GC: Keeping workload pack {pack.ResolvedPackageId} {pack.Version} as part of workload set {workloadSet}"); - PacksToKeep.Add((new WorkloadPackId(pack.ResolvedPackageId), pack.Version)); + foreach (var pack in _installedWorkloads.SelectMany(workloadId => resolver.GetPacksInWorkload(workloadId)) + .Select(packId => resolver.TryGetPackInfo(packId)) + .Where(pack => pack != null)) + { + _verboseReporter.WriteLine($"GC: Keeping workload pack {pack.ResolvedPackageId} {pack.Version} as part of workload set {workloadSet}"); + PacksToKeep.Add((new WorkloadPackId(pack.ResolvedPackageId), pack.Version)); + } } } From f8230ce8e8ec9a20df1276a0d9f39526571db815 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Tue, 30 Jul 2024 19:55:01 -0400 Subject: [PATCH 064/209] Handle workload set garbage collection for MSI based installs --- .../Installer/Windows/WorkloadSetRecord.cs | 68 ++++++++++++++++ ...NetSdkMsiInstallerClient.InstallRecords.cs | 35 ++++++++ .../install/NetSdkMsiInstallerClient.cs | 81 ++++++++++++++++++- 3 files changed, 181 insertions(+), 3 deletions(-) create mode 100644 src/Cli/dotnet/Installer/Windows/WorkloadSetRecord.cs diff --git a/src/Cli/dotnet/Installer/Windows/WorkloadSetRecord.cs b/src/Cli/dotnet/Installer/Windows/WorkloadSetRecord.cs new file mode 100644 index 000000000000..69d5f991b575 --- /dev/null +++ b/src/Cli/dotnet/Installer/Windows/WorkloadSetRecord.cs @@ -0,0 +1,68 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.DotNet.Installer.Windows +{ + /// + /// Represents a workload set that has been installed + /// + internal class WorkloadSetRecord + { + /// + /// The dependency provider key of the workload set MSI used for reference counting shared installations. + /// + public string ProviderKeyName + { + get; + set; + } + + /// + /// The version of the workload set installed by this MSI + /// + public string WorkloadSetVersion + { + get; + set; + } + + public string WorkloadSetFeatureBand + { + get; + set; + } + + /// + /// The product code (GUID) of the workload set MSI. + /// + public string ProductCode + { + get; + set; + } + + /// + /// The version of the workload set MSI. + /// + public Version ProductVersion + { + get; + set; + } + + /// + /// The upgrade code (GUID) of the workload set MSI. + /// + public string UpgradeCode + { + get; + set; + } + } +} diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.InstallRecords.cs b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.InstallRecords.cs index af1d9c9af30e..b0dbca2816ab 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.InstallRecords.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.InstallRecords.cs @@ -18,6 +18,41 @@ namespace Microsoft.DotNet.Workloads.Workload.Install { internal partial class NetSdkMsiInstallerClient { + protected List GetWorkloadSetRecords() + { + Log?.LogMessage($"Detecting installed workload sets for {HostArchitecture}."); + + var workloadSetRecords = new List(); + + using RegistryKey installedManifestsKey = Registry.LocalMachine.OpenSubKey(@$"SOFTWARE\Microsoft\dotnet\InstalledWorkloadSets\{HostArchitecture}"); + if (installedManifestsKey != null) + { + foreach (string workloadSetFeatureBand in installedManifestsKey.GetSubKeyNames()) + { + using RegistryKey workloadSetFeatureBandKey = installedManifestsKey.OpenSubKey(workloadSetFeatureBand); + foreach (string workloadSetVersion in workloadSetFeatureBandKey.GetSubKeyNames()) + { + using RegistryKey workloadSetVersionKey = workloadSetFeatureBandKey.OpenSubKey(workloadSetVersion); + + WorkloadSetRecord record = new WorkloadSetRecord() + { + ProviderKeyName = (string)workloadSetVersionKey.GetValue("DependencyProviderKey"), + WorkloadSetVersion = workloadSetVersion, + WorkloadSetFeatureBand = workloadSetFeatureBand, + ProductCode = (string)workloadSetVersionKey.GetValue("ProductCode"), + ProductVersion = new Version((string)workloadSetVersionKey.GetValue("ProductVersion")), + UpgradeCode = (string)workloadSetVersionKey.GetValue("UpgradeCode"), + }; + + Log.LogMessage($"Found workload set record, version: {workloadSetVersion}, feature band: {workloadSetFeatureBand}, ProductCode: {record.ProductCode}, provider key: {record.ProviderKeyName}"); + workloadSetRecords.Add(record); + } + } + } + + return workloadSetRecords; + } + // Manifest IDs are lowercased on disk, we need to map them back to the original casing to generate the right UpgradeCode private static readonly string[] CasedManifestIds = [ diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs index ec974624286d..2fc6af798a9b 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs @@ -139,7 +139,55 @@ public void GarbageCollect(Func getResolverForWorkloa IEnumerable installedFeatureBands = GetInstalledFeatureBands(Log); - // TODO: Garbage collect workload sets + List workloadSetsToRemove = new(); + var installedWorkloadSets = GetWorkloadSetRecords(); + foreach (var workloadSetRecord in installedWorkloadSets) + { + DependencyProvider depProvider = new DependencyProvider(workloadSetRecord.ProviderKeyName); + + (bool shouldBeInstalled, string reason) ShouldBeInstalled(SdkFeatureBand dependentFeatureBand) + { + if (!installedFeatureBands.Contains(dependentFeatureBand)) + { + return (false, $"SDK feature band {dependentFeatureBand} does not match any installed feature bands."); + } + else if (dependentFeatureBand.Equals(_sdkFeatureBand)) + { + if (garbageCollector.WorkloadSetsToKeep.Contains(workloadSetRecord.WorkloadSetVersion)) + { + return (true, $"the workload set is still needed for SDK feature band {dependentFeatureBand}."); + } + else + { + return (false, $"the workload set is no longer needed for SDK feature band {dependentFeatureBand}."); + } + } + else + { + return (true, $"the workload set may still be needed for SDK feature band {dependentFeatureBand}, which is different than the current SDK feature band of {_sdkFeatureBand}"); + } + } + + Log?.LogMessage($"Evaluating dependents for workload set, dependent: {depProvider}, Version: {workloadSetRecord.WorkloadSetVersion}, Feature Band: {workloadSetRecord.WorkloadSetFeatureBand}"); + UpdateDependentReferenceCounts(depProvider, ShouldBeInstalled); + + // Recheck the registry to see if there are any remaining dependents. If not, we can + // remove the workload set. We'll add it to the list and remove the installed workload set at the end. + IEnumerable remainingDependents = depProvider.Dependents; + + if (remainingDependents.Any()) + { + Log?.LogMessage($"Workload set {workloadSetRecord.WorkloadSetVersion}/{workloadSetRecord.WorkloadSetFeatureBand} will not be removed because other dependents remain: {string.Join(", ", remainingDependents)}."); + } + else + { + workloadSetsToRemove.Add(workloadSetRecord); + Log?.LogMessage($"Removing workload set {workloadSetRecord.WorkloadSetVersion}/{workloadSetRecord.WorkloadSetFeatureBand} as no dependents remain."); + } + } + + RemoveWorkloadSets(workloadSetsToRemove, offlineCache); + List manifestsToRemove = new(); @@ -382,7 +430,34 @@ private void UpdateDependentReferenceCounts( } } - private void RemoveWorkloadManifests(List manifestToRemove, DirectoryPath? offlineCach) + private void RemoveWorkloadSets(List workloadSetsToRemove, DirectoryPath? offlineCache) + { + foreach (WorkloadSetRecord record in workloadSetsToRemove) + { + DetectState state = DetectPackage(record.ProductCode, out Version _); + if (state == DetectState.Present) + { + string msiNuGetPackageId = $"Microsoft.NET.Workloads.{record.WorkloadSetFeatureBand}.Msi.{HostArchitecture}"; + string packageVersion = WorkloadSet.WorkloadSetVersionToWorkloadSetPackageVersion(record.WorkloadSetVersion, out _); + MsiPayload msi = GetCachedMsiPayload(msiNuGetPackageId, packageVersion, offlineCache); + + if (!string.Equals(record.ProductCode, msi.ProductCode, StringComparison.OrdinalIgnoreCase)) + { + Log?.LogMessage($"ProductCode mismatch! Cached package: {msi.ProductCode}, workload set record: {record.ProductCode}."); + string logFile = GetMsiLogName(record.ProductCode, InstallAction.Uninstall); + uint error = ExecuteWithProgress(String.Format(LocalizableStrings.MsiProgressUninstall, msiNuGetPackageId), () => UninstallMsi(record.ProductCode, logFile)); + ExitOnError(error, $"Failed to uninstall {msi.MsiPath}."); + } + else + { + VerifyPackage(msi); + ExecutePackage(msi, InstallAction.Uninstall, msiNuGetPackageId); + } + } + } + } + + private void RemoveWorkloadManifests(List manifestToRemove, DirectoryPath? offlineCache) { foreach (WorkloadManifestRecord record in manifestToRemove) { @@ -390,7 +465,7 @@ private void RemoveWorkloadManifests(List manifestToRemo if (state == DetectState.Present) { string msiNuGetPackageId = $"{record.ManifestId}.Manifest-{record.ManifestFeatureBand}.Msi.{HostArchitecture}"; - MsiPayload msi = GetCachedMsiPayload(msiNuGetPackageId, record.ManifestVersion, offlineCach); + MsiPayload msi = GetCachedMsiPayload(msiNuGetPackageId, record.ManifestVersion, offlineCache); if (!string.Equals(record.ProductCode, msi.ProductCode, StringComparison.OrdinalIgnoreCase)) { From 6cc0e7837101af709224bc6aaffc3df4e10091b7 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Wed, 31 Jul 2024 01:01:56 -0400 Subject: [PATCH 065/209] Fix handling when no GC Root file exists --- .../dotnet-workload/GlobalJsonWorkloadSetFile.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs index 7459c4ad0af6..5b8d00f2730c 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs @@ -29,9 +29,20 @@ public GlobalJsonWorkloadSetsFile(SdkFeatureBand sdkFeatureBand, string dotnetDi public void RecordWorkloadSetInGlobalJson(string globalJsonPath, string workloadSetVersion) { + // Create install state folder if needed + Directory.CreateDirectory(Path.GetDirectoryName(_path)); + using (var fileStream = File.Open(_path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) { - var globalJsonWorkloadSetVersions = JsonSerializer.Deserialize>(fileStream, _jsonSerializerOptions); + Dictionary globalJsonWorkloadSetVersions; + if (fileStream.Length > 0) + { + globalJsonWorkloadSetVersions = JsonSerializer.Deserialize>(fileStream, _jsonSerializerOptions); + } + else + { + globalJsonWorkloadSetVersions = new(); + } globalJsonWorkloadSetVersions[globalJsonPath] = workloadSetVersion; fileStream.Seek(0, SeekOrigin.Begin); JsonSerializer.Serialize(fileStream, globalJsonWorkloadSetVersions, _jsonSerializerOptions); From 7b0a5559a00d290492956588ac836ffbc2bddf47 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Fri, 2 Aug 2024 15:53:11 -0400 Subject: [PATCH 066/209] Fail if testworkloadsetversions.json file isn't found --- test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs b/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs index 04135fd74845..a85036fa2960 100644 --- a/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs +++ b/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs @@ -20,18 +20,19 @@ public class WorkloadSetTests : VMTestBase Lazy> _testWorkloadSetVersions; - string WorkloadSetVersion1 => _testWorkloadSetVersions.Value.GetValueOrDefault("version1", "8.0.300-preview.0.24178.1"); - string WorkloadSetVersion2 => _testWorkloadSetVersions.Value.GetValueOrDefault("version2", "8.0.300-preview.0.24217.2"); + string WorkloadSetVersion1 => _testWorkloadSetVersions.Value["version1"]; + string WorkloadSetVersion2 => _testWorkloadSetVersions.Value["version2"]; string WorkloadSetPreviousBandVersion => _testWorkloadSetVersions.Value.GetValueOrDefault("previousbandversion", "8.0.204"); public WorkloadSetTests(ITestOutputHelper log) : base(log) { _testWorkloadSetVersions = new Lazy>(() => { - var versionsFile = VM.GetRemoteFile(@"c:\SdkTesting\workloadsets\testworkloadsetversions.json"); + string remoteFilePath = @"c:\SdkTesting\workloadsets\testworkloadsetversions.json"; + var versionsFile = VM.GetRemoteFile(remoteFilePath); if (!versionsFile.Exists) { - return new Dictionary(); + throw new FileNotFoundException($"Could not find file {remoteFilePath} on VM"); } return JsonSerializer.Deserialize>(versionsFile.ReadAllText()); From a2032a15e149db9b43e7e081fddbdc57cc8e44ad Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Fri, 2 Aug 2024 16:59:44 -0400 Subject: [PATCH 067/209] Load NuGet feeds from VM Test Settings file --- .../Framework/VMTestBase.cs | 21 ++++++++++++------- .../Framework/VMTestSettings.cs | 2 ++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/test/dotnet-MsiInstallation.Tests/Framework/VMTestBase.cs b/test/dotnet-MsiInstallation.Tests/Framework/VMTestBase.cs index 4b704c299070..f6012cec10ff 100644 --- a/test/dotnet-MsiInstallation.Tests/Framework/VMTestBase.cs +++ b/test/dotnet-MsiInstallation.Tests/Framework/VMTestBase.cs @@ -65,17 +65,22 @@ protected void InstallSdk(bool deployStage2 = true) { return; } + IEnumerable AddNuGetSourceActions = Enumerable.Empty(); + if (VM.VMTestSettings.NuGetSourcesToAdd != null) + { + AddNuGetSourceActions = VM.VMTestSettings.NuGetSourcesToAdd.Select(source => - VM.CreateRunCommand("setx", "DOTNET_NOLOGO", "true") - .WithDescription("Disable .NET SDK first run message") - .Execute() - .Should() - .Pass(); + VM.CreateRunCommand("dotnet", "nuget", "add", "source", source) + ).ToList(); + } - VM.CreateRunCommand($@"c:\SdkTesting\{SdkInstallerFileName}", "/quiet") - .WithDescription($"Install SDK {SdkInstallerVersion}") + VM.CreateActionGroup($"Install and setup SDK {SdkInstallerVersion}", + [ + VM.CreateRunCommand("setx", "DOTNET_NOLOGO", "true"), + VM.CreateRunCommand($@"c:\SdkTesting\{SdkInstallerFileName}", "/quiet"), + ..AddNuGetSourceActions + ]) .Execute().Should().Pass(); - if (deployStage2) { DeployStage2Sdk(); diff --git a/test/dotnet-MsiInstallation.Tests/Framework/VMTestSettings.cs b/test/dotnet-MsiInstallation.Tests/Framework/VMTestSettings.cs index 82670bfd72e2..a9e27dc6b602 100644 --- a/test/dotnet-MsiInstallation.Tests/Framework/VMTestSettings.cs +++ b/test/dotnet-MsiInstallation.Tests/Framework/VMTestSettings.cs @@ -17,6 +17,8 @@ internal class VMTestSettings public bool ShouldTestStage2 { get; set; } = true; + public string[] NuGetSourcesToAdd { get; set; } + } } From 159447b814996a0cd5475fd697b658b0b47d4e3e Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Fri, 2 Aug 2024 17:00:25 -0400 Subject: [PATCH 068/209] Save test results to files when running MSI Installation tests --- .gitignore | 1 + .../dotnet-MsiInstallation.Tests.csproj | 1 + .../dotnet-MsiInstallation.Tests.runsettings | 16 ++++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 test/dotnet-MsiInstallation.Tests/dotnet-MsiInstallation.Tests.runsettings diff --git a/.gitignore b/.gitignore index 41f78907d051..7a95c9dded4a 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ cmake/ # Test results **/*.trx +/TestResults diff --git a/test/dotnet-MsiInstallation.Tests/dotnet-MsiInstallation.Tests.csproj b/test/dotnet-MsiInstallation.Tests/dotnet-MsiInstallation.Tests.csproj index 2ac9ab80dd8d..1debc0678ebb 100644 --- a/test/dotnet-MsiInstallation.Tests/dotnet-MsiInstallation.Tests.csproj +++ b/test/dotnet-MsiInstallation.Tests/dotnet-MsiInstallation.Tests.csproj @@ -3,6 +3,7 @@ Tests\$(MSBuildProjectName) + $(MSBuildThisFileDirectory)\dotnet-MsiInstallation.Tests.runsettings diff --git a/test/dotnet-MsiInstallation.Tests/dotnet-MsiInstallation.Tests.runsettings b/test/dotnet-MsiInstallation.Tests/dotnet-MsiInstallation.Tests.runsettings new file mode 100644 index 000000000000..c049cae86e0f --- /dev/null +++ b/test/dotnet-MsiInstallation.Tests/dotnet-MsiInstallation.Tests.runsettings @@ -0,0 +1,16 @@ + + + + + + MsiInstallationTests.trx + + + + + MsiInstallationTests.html + + + + + From 888802b186ead62d325c2bbcfeb062f8ff8affc5 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Mon, 5 Aug 2024 15:35:29 -0400 Subject: [PATCH 069/209] Update documentation for MSI Installation tests --- test/dotnet-MsiInstallation.Tests/README.md | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/test/dotnet-MsiInstallation.Tests/README.md b/test/dotnet-MsiInstallation.Tests/README.md index 8ccc5086d9e4..f6c12b951f24 100644 --- a/test/dotnet-MsiInstallation.Tests/README.md +++ b/test/dotnet-MsiInstallation.Tests/README.md @@ -101,18 +101,31 @@ The tests can read settings from a `VMTestSettings.json` file which you need to - **VMMachineName** - The machine name used by the VM's operating system. This is what is used to browse to the machine in File Explorer, for example `\\TestVM`. If this isn't specified, the tests will use the VM Name with any spaces removed for the VM machine name. - **SdkInstallerVersion** - The version of the SDK to install for testing. The installer for this version needs to be copied to `C:\SdkTesting` inside the VM. - **ShouldTestStage2** - If set to true (which is the default), then the tests will copy the SDK implementation binaries to the installed SDK folder inside the VM. Basically, you should leave this set to true if you want to test local changes to the SDK, and you should set it to false if you want to test the SDK specified in `SdkInstallerVersion`. +- **NuGetSourcesToAdd** - A list of NuGet sources to add to the NuGet.config before running tests. + Example: ```json { "VMName": "TestVM", "VMMachineName": "WINDEV2401EVAL", - "SdkInstallerVersion": "8.0.300-preview.24155.26" + "SdkInstallerVersion": "8.0.300-preview.24155.26", + "NuGetSourcesToAdd": [ + "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" + ] } ``` -If you want to change the snapshot used for the initial test state, in addition to renaming the snapshots so that the new one has "Test Start" in its name, you will need to delete the `VMState.json` file, as otherwise the root test state will be read from it. +## Checkpoint limit + +Hyper-V supports a maximum of 50 checkpoints per VM. This means that as more checkpoints are created and the limit is hit, tests will fail when they try to create checkpoints. Thus, the checkpoints created by the tests will need to be deleted periodically. Some pointers: + +- Running all the tests will likely exceed the checkpoint limit. To avoid this, run each test class separately, deleting the checkpoints between the runs. +- Re-building an SDK will result in a different stage 2 SDK, invalidating all of the old checkpoints. So when you re-build the SDK, you usually want to delete the whole checkpoint tree under the previous "Deploy Stage 2 SDK" checkpoint. +- If you want to force a test to run a command instead of using the cached result, you can delete the corresponding checkpoint. + +## Sharing test results -## Notes +The test project is configured to save test results to `MsiInstallationTests.html` and `MsiInstallationTests.trx` in the `TestResults` folder. You can use these files to share test results. However, each time you run any tests, these files will be overwritten, so you may need to copy and rename them each time you run tests. -Hyper-V supports a maximum of 50 snapshots per VM. If you make changes to the SDK and re-run tests, new snapshots will be created for the newly deployed stage 2 SDK. You may need to delete the older snapshots in order avoid hitting the snapshot limit. Also, if you want to force a test to run a command instead of using the cached result, you can delete the corresponding snapshot. +Note that once a test has run the result will be saved, so re-running the test will usually complete quickly without actually taking any actions on the VM. So if you need to re-run a single test in order to fix something or due to test flakiness, once you have done so you can usually run all the tests in the test class again to get results files with all of those test results included. From b23cfdd29ae5564bd67b50a30eda827056e1f432 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Mon, 5 Aug 2024 16:06:23 -0400 Subject: [PATCH 070/209] Add test for uninstalling workload sets with SDK (finalizer) --- .../WorkloadSetTests.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs b/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs index a85036fa2960..01907f2f8a47 100644 --- a/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs +++ b/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs @@ -425,6 +425,23 @@ public void TurnOffWorkloadSetUpdateMode() throw new NotImplementedException(); } + [Fact] + public void FinalizerUninstallsWorkloadSets() + { + UpdateWithWorkloadSets(); + + // Get workload set feature band + WorkloadSet.WorkloadSetVersionToWorkloadSetPackageVersion(WorkloadSetVersion2, out var workloadSetFeatureBand); + + string workloadSetPath = $@"c:\Program Files\dotnet\sdk-manifests\{workloadSetFeatureBand}\workloadsets\{WorkloadSetVersion2}"; + + VM.GetRemoteDirectory(workloadSetPath).Should().Exist(); + + UninstallSdk(); + + VM.GetRemoteDirectory(workloadSetPath).Should().NotExist(); + } + string GetWorkloadVersion(string workingDirectory = null) { var result = VM.CreateRunCommand("dotnet", "workload", "--version") From ef4c9d858a9c448c9f1726855111adad5f1b82e1 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Wed, 21 Aug 2024 10:51:05 -0400 Subject: [PATCH 071/209] Apply code review feedback --- .../install/FileBasedInstaller.cs | 11 ++++-- .../install/NetSdkMsiInstallerClient.cs | 2 -- .../install/WorkloadGarbageCollector.cs | 35 +++++++++++-------- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs b/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs index 9b6b0b15aeec..0ff7756e7637 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/FileBasedInstaller.cs @@ -345,8 +345,12 @@ public void GarbageCollect(Func getResolverForWorkloa { var globalJsonWorkloadSetVersions = GetGlobalJsonWorkloadSetVersions(_sdkFeatureBand); - var garbageCollector = new WorkloadGarbageCollector(_workloadRootDir, _sdkFeatureBand, _installationRecordRepository.GetInstalledWorkloads(_sdkFeatureBand), - getResolverForWorkloadSet, globalJsonWorkloadSetVersions, Reporter.Verbose); + var garbageCollector = new WorkloadGarbageCollector(_workloadRootDir, + _sdkFeatureBand, + _installationRecordRepository.GetInstalledWorkloads(_sdkFeatureBand), + getResolverForWorkloadSet, + globalJsonWorkloadSetVersions, + Reporter.Verbose); garbageCollector.Collect(); var featureBandsWithWorkloadInstallRecords = _installationRecordRepository.GetFeatureBandsWithInstallationRecords(); @@ -363,7 +367,9 @@ public void GarbageCollect(Func getResolverForWorkloa Dictionary<(string workloadSetVersion, SdkFeatureBand workloadSetFeatureBand), List> workloadSetInstallRecords = GetAllWorkloadSetInstallRecords(); foreach ((string workloadSetVersion, _) in installedWorkloadSets) { + // Get the feature band of the workload set WorkloadSet.WorkloadSetVersionToWorkloadSetPackageVersion(workloadSetVersion, out var workloadSetFeatureBand); + List referencingFeatureBands; if (!workloadSetInstallRecords.TryGetValue((workloadSetVersion, workloadSetFeatureBand), out referencingFeatureBands)) { @@ -543,6 +549,7 @@ public void RecordWorkloadSetInGlobalJson(SdkFeatureBand sdkFeatureBand, string { new GlobalJsonWorkloadSetsFile(sdkFeatureBand, _workloadRootDir).RecordWorkloadSetInGlobalJson(globalJsonPath, workloadSetVersion); } + public Dictionary GetGlobalJsonWorkloadSetVersions(SdkFeatureBand sdkFeatureBand) { return new GlobalJsonWorkloadSetsFile(sdkFeatureBand, _workloadRootDir).GetGlobalJsonWorkloadSetVersions(); diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs index 2fc6af798a9b..7c5c565c9f00 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs @@ -188,9 +188,7 @@ public void GarbageCollect(Func getResolverForWorkloa RemoveWorkloadSets(workloadSetsToRemove, offlineCache); - List manifestsToRemove = new(); - var installedWorkloadManifests = GetWorkloadManifestRecords(); foreach (var manifestRecord in installedWorkloadManifests) { diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs b/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs index ee4c024f09bf..d9d72f80154f 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/WorkloadGarbageCollector.cs @@ -40,9 +40,9 @@ internal class WorkloadGarbageCollector enum GCAction { - Collect, - KeepWithoutPacks, - Keep, + Collect = 0, + KeepWithoutPacks = 1, + Keep = 2, } Dictionary _workloadSets = new(); @@ -50,8 +50,8 @@ enum GCAction // globalJsonWorkloadSetVersions should be the contents of the GC Roots file. The keys should be paths to global.json files, and the values // should be the workload set version referred to by that file. Before calling this method, the installer implementation should update the - // file by removing any outdated entries in it (where ie the global.json file doesn't exist or no longer specifies the same worlkload set - // version). + // file by removing any outdated entries in it (where for example the global.json file doesn't exist or no longer specifies the same workload + // set version). public WorkloadGarbageCollector(string dotnetDir, SdkFeatureBand sdkFeatureBand, IEnumerable installedWorkloads, Func getResolverForWorkloadSet, Dictionary globalJsonWorkloadSetVersions, IReporter verboseReporter) { @@ -96,17 +96,18 @@ void GarbageCollectWorkloadSets() _workloadSets = installedWorkloadSets.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.IsBaselineWorkloadSet ? GCAction.KeepWithoutPacks : GCAction.Collect); var installStateFilePath = Path.Combine(WorkloadInstallType.GetInstallStateFolder(_sdkFeatureBand, _dotnetDir), "default.json"); - if (File.Exists(installStateFilePath)) + var installState = InstallStateContents.FromPath(installStateFilePath); + // If there is a rollback state file (default.json) in the workload install state folder, don't garbage collect the workload set it specifies. + if (!string.IsNullOrEmpty(installState.WorkloadVersion)) { - // If there is a rollback state file (default.json) in the workload install state folder, don't garbage collect the workload set it specifies. - var installState = InstallStateContents.FromPath(installStateFilePath); - if (!string.IsNullOrEmpty(installState.WorkloadVersion)) + if (installedWorkloadSets.ContainsKey(installState.WorkloadVersion)) { - if (installedWorkloadSets.ContainsKey(installState.WorkloadVersion)) - { - _workloadSets[installState.WorkloadVersion] = GCAction.Keep; - _verboseReporter.WriteLine($"GC: Keeping workload set version {installState.WorkloadVersion} because it is specified in the install state file {installStateFilePath}"); - } + _workloadSets[installState.WorkloadVersion] = GCAction.Keep; + _verboseReporter.WriteLine($"GC: Keeping workload set version {installState.WorkloadVersion} because it is specified in the install state file {installStateFilePath}"); + } + else + { + _verboseReporter.WriteLine($"GC: Error: Workload set version {installState.WorkloadVersion} which was specified in {installStateFilePath} was not found. This is likely an invalid state."); } } else @@ -169,7 +170,11 @@ void GarbageCollectWorkloadManifestsAndPacks() existingAction = GCAction.Collect; } - // Take the "greater" action, ie if a manifest would be KeepWithoutPacks with one resolver and Keep with another one, then it should be kept + // We should keep a manifest if it's referenced by any workload set we're planning to keep. If there are multiple resolvers that end up referencing + // a workload manifest, we should take the "greater" action. IE if a manifest would be KeepWithoutPacks with one resolver and Keep with another one, + // then it (and its packs) should be kept. + // The scenario where there would be a mismatch is if there's a baseline workload set that's not active referring to the same manifest as an active + // workload set. The manifest would be marked KeepWithoutPacks via the baseline manifest, and Keep via the active workload set. if (gcAction > existingAction) { _manifests[manifestKey] = gcAction; From 9a3b28fa0a0b6c36b46609f888bc68cbe09a6772 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Wed, 21 Aug 2024 10:51:40 -0400 Subject: [PATCH 072/209] Set permissions for globaljsonworkloadsets.json --- .../dotnet-workload/GlobalJsonWorkloadSetFile.cs | 6 ++++-- .../dotnet-workload/install/MsiInstallerBase.cs | 12 ++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs index 5b8d00f2730c..da078258a3a6 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs @@ -16,6 +16,8 @@ internal class GlobalJsonWorkloadSetsFile { string _path; + public string Path { get { return _path; } } + private static JsonSerializerOptions _jsonSerializerOptions = new JsonSerializerOptions() { WriteIndented = true, @@ -24,13 +26,13 @@ internal class GlobalJsonWorkloadSetsFile public GlobalJsonWorkloadSetsFile(SdkFeatureBand sdkFeatureBand, string dotnetDir) { - _path = Path.Combine(WorkloadInstallType.GetInstallStateFolder(sdkFeatureBand, dotnetDir), "globaljsonworkloadsets.json"); + _path = System.IO.Path.Combine(WorkloadInstallType.GetInstallStateFolder(sdkFeatureBand, dotnetDir), "globaljsonworkloadsets.json"); } public void RecordWorkloadSetInGlobalJson(string globalJsonPath, string workloadSetVersion) { // Create install state folder if needed - Directory.CreateDirectory(Path.GetDirectoryName(_path)); + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(_path)); using (var fileStream = File.Open(_path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) { diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs b/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs index a89c7ce37b5d..bd91cd1bd46c 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs @@ -3,6 +3,7 @@ using System; using System.Diagnostics; +using System.IO; using System.Runtime.Versioning; using System.Text.Json; using Microsoft.DotNet.Cli.Utils; @@ -269,7 +270,10 @@ public void RecordWorkloadSetInGlobalJson(SdkFeatureBand sdkFeatureBand, string if (IsElevated) { - new GlobalJsonWorkloadSetsFile(sdkFeatureBand, DotNetHome).RecordWorkloadSetInGlobalJson(globalJsonPath, workloadSetVersion); + var workloadSetsFile = new GlobalJsonWorkloadSetsFile(sdkFeatureBand, DotNetHome); + SecurityUtils.CreateSecureDirectory(Path.GetDirectoryName(workloadSetsFile.Path)); + workloadSetsFile.RecordWorkloadSetInGlobalJson(globalJsonPath, workloadSetVersion); + SecurityUtils.SecureFile(workloadSetsFile.Path); } else if (IsClient) { @@ -288,7 +292,11 @@ public Dictionary GetGlobalJsonWorkloadSetVersions(SdkFeatureBan if (IsElevated) { - return new GlobalJsonWorkloadSetsFile(sdkFeatureBand, DotNetHome).GetGlobalJsonWorkloadSetVersions(); + var workloadSetsFile = new GlobalJsonWorkloadSetsFile(sdkFeatureBand, DotNetHome); + SecurityUtils.CreateSecureDirectory(Path.GetDirectoryName(workloadSetsFile.Path)); + var versions = workloadSetsFile.GetGlobalJsonWorkloadSetVersions(); + SecurityUtils.SecureFile(workloadSetsFile.Path); + return versions; } else if (IsClient) { From 3f33a52b1b55fc9ab14cbdf7418fd10609c58f16 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Wed, 21 Aug 2024 13:22:59 -0400 Subject: [PATCH 073/209] Fix trying to open globaljsonworkloadsets when install state folder isn't created --- .../commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs index da078258a3a6..a236b497b30f 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/GlobalJsonWorkloadSetFile.cs @@ -64,6 +64,10 @@ FileStream OpenFile() { return null; } + catch (DirectoryNotFoundException) + { + return null; + } } using (var fileStream = OpenFile()) From d3ff125aa9208e17554e3dd26bca5e97352ff345 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Thu, 22 Aug 2024 12:08:52 -0400 Subject: [PATCH 074/209] Don't try to set ACLs for nonexistant file --- .../commands/dotnet-workload/install/MsiInstallerBase.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs b/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs index bd91cd1bd46c..6aeedcf83220 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/MsiInstallerBase.cs @@ -295,7 +295,12 @@ public Dictionary GetGlobalJsonWorkloadSetVersions(SdkFeatureBan var workloadSetsFile = new GlobalJsonWorkloadSetsFile(sdkFeatureBand, DotNetHome); SecurityUtils.CreateSecureDirectory(Path.GetDirectoryName(workloadSetsFile.Path)); var versions = workloadSetsFile.GetGlobalJsonWorkloadSetVersions(); - SecurityUtils.SecureFile(workloadSetsFile.Path); + + // GetGlobalJsonWorkloadSetVersions will not create the file if it doesn't exist, so don't try to secure a non-existant file + if (File.Exists(workloadSetsFile.Path)) + { + SecurityUtils.SecureFile(workloadSetsFile.Path); + } return versions; } else if (IsClient) From d7675ec38adde32b0da4e2d6678e9f9353000e32 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Thu, 22 Aug 2024 12:09:38 -0400 Subject: [PATCH 075/209] Registry key is workload set package version, not workload set version --- .../dotnet/Installer/Windows/WorkloadSetRecord.cs | 6 ++++++ .../NetSdkMsiInstallerClient.InstallRecords.cs | 15 +++++++++------ .../install/NetSdkMsiInstallerClient.cs | 3 +-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/Cli/dotnet/Installer/Windows/WorkloadSetRecord.cs b/src/Cli/dotnet/Installer/Windows/WorkloadSetRecord.cs index 69d5f991b575..e83d19a3855a 100644 --- a/src/Cli/dotnet/Installer/Windows/WorkloadSetRecord.cs +++ b/src/Cli/dotnet/Installer/Windows/WorkloadSetRecord.cs @@ -38,6 +38,12 @@ public string WorkloadSetFeatureBand set; } + public string WorkloadSetPackageVersion + { + get; + set; + } + /// /// The product code (GUID) of the workload set MSI. /// diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.InstallRecords.cs b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.InstallRecords.cs index b0dbca2816ab..b8ed54fb38a6 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.InstallRecords.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.InstallRecords.cs @@ -30,18 +30,21 @@ protected List GetWorkloadSetRecords() foreach (string workloadSetFeatureBand in installedManifestsKey.GetSubKeyNames()) { using RegistryKey workloadSetFeatureBandKey = installedManifestsKey.OpenSubKey(workloadSetFeatureBand); - foreach (string workloadSetVersion in workloadSetFeatureBandKey.GetSubKeyNames()) + foreach (string workloadSetPackageVersion in workloadSetFeatureBandKey.GetSubKeyNames()) { - using RegistryKey workloadSetVersionKey = workloadSetFeatureBandKey.OpenSubKey(workloadSetVersion); + using RegistryKey workloadSetPackageVersionKey = workloadSetFeatureBandKey.OpenSubKey(workloadSetPackageVersion); + + string workloadSetVersion = WorkloadManifestUpdater.WorkloadSetPackageVersionToWorkloadSetVersion(new SdkFeatureBand(workloadSetFeatureBand), workloadSetPackageVersion); WorkloadSetRecord record = new WorkloadSetRecord() { - ProviderKeyName = (string)workloadSetVersionKey.GetValue("DependencyProviderKey"), + ProviderKeyName = (string)workloadSetPackageVersionKey.GetValue("DependencyProviderKey"), WorkloadSetVersion = workloadSetVersion, + WorkloadSetPackageVersion = workloadSetPackageVersion, WorkloadSetFeatureBand = workloadSetFeatureBand, - ProductCode = (string)workloadSetVersionKey.GetValue("ProductCode"), - ProductVersion = new Version((string)workloadSetVersionKey.GetValue("ProductVersion")), - UpgradeCode = (string)workloadSetVersionKey.GetValue("UpgradeCode"), + ProductCode = (string)workloadSetPackageVersionKey.GetValue("ProductCode"), + ProductVersion = new Version((string)workloadSetPackageVersionKey.GetValue("ProductVersion")), + UpgradeCode = (string)workloadSetPackageVersionKey.GetValue("UpgradeCode"), }; Log.LogMessage($"Found workload set record, version: {workloadSetVersion}, feature band: {workloadSetFeatureBand}, ProductCode: {record.ProductCode}, provider key: {record.ProviderKeyName}"); diff --git a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs index 7c5c565c9f00..b415b5f17633 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/install/NetSdkMsiInstallerClient.cs @@ -436,8 +436,7 @@ private void RemoveWorkloadSets(List workloadSetsToRemove, Di if (state == DetectState.Present) { string msiNuGetPackageId = $"Microsoft.NET.Workloads.{record.WorkloadSetFeatureBand}.Msi.{HostArchitecture}"; - string packageVersion = WorkloadSet.WorkloadSetVersionToWorkloadSetPackageVersion(record.WorkloadSetVersion, out _); - MsiPayload msi = GetCachedMsiPayload(msiNuGetPackageId, packageVersion, offlineCache); + MsiPayload msi = GetCachedMsiPayload(msiNuGetPackageId, record.WorkloadSetPackageVersion, offlineCache); if (!string.Equals(record.ProductCode, msi.ProductCode, StringComparison.OrdinalIgnoreCase)) { From 385d396dac32c2b597827fae7c6e0c51138a46b1 Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Thu, 22 Aug 2024 12:34:49 -0400 Subject: [PATCH 076/209] Add workload set garbage collection test --- .../WorkloadSetTests.cs | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs b/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs index 01907f2f8a47..1f73964b5644 100644 --- a/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs +++ b/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs @@ -425,6 +425,66 @@ public void TurnOffWorkloadSetUpdateMode() throw new NotImplementedException(); } + [Fact] + public void GarbageCollectWorkloadSets() + { + InstallSdk(); + + UpdateAndSwitchToWorkloadSetMode(out string _, out WorkloadSet rollbackAfterUpdate); + + AddNuGetSource(@"c:\SdkTesting\WorkloadSets"); + + // Update to latest workload set version + VM.CreateRunCommand("dotnet", "workload", "update") + .Execute().Should().Pass(); + + GetWorkloadVersion().Should().Be(WorkloadSetVersion2); + + // Get workload set feature band + WorkloadSet.WorkloadSetVersionToWorkloadSetPackageVersion(WorkloadSetVersion2, out var workloadSetFeatureBand); + + string workloadSet2Path = $@"c:\Program Files\dotnet\sdk-manifests\{workloadSetFeatureBand}\workloadsets\{WorkloadSetVersion2}"; + + VM.GetRemoteDirectory(workloadSet2Path).Should().Exist(); + + // Downgrade to earlier workload set version + VM.CreateRunCommand("dotnet", "workload", "update", "--version", WorkloadSetVersion1) + .Execute().Should().Pass(); + + // Later workload set version should be GC'd + VM.GetRemoteDirectory(workloadSet2Path).Should().NotExist(); + + // Now, pin older workload set version in global.json + VM.WriteFile("C:\\SdkTesting\\global.json", @$"{{""sdk"":{{""workloadVersion"":""{WorkloadSetVersion1}""}}}}").Execute().Should().Pass(); + + // Install pinned version + VM.CreateRunCommand("dotnet", "workload", "update") + .WithWorkingDirectory(SdkTestingDirectory) + .Execute().Should().Pass(); + + // Update globally installed version to later version + VM.CreateRunCommand("dotnet", "workload", "update") + .Execute().Should().Pass(); + + // Check workload versions in global context and global.json directory + GetWorkloadVersion().Should().Be(WorkloadSetVersion2); + GetWorkloadVersion(SdkTestingDirectory).Should().Be(WorkloadSetVersion1); + + // Workload set 1 should still be installed + string workloadSet1Path = $@"c:\Program Files\dotnet\sdk-manifests\{workloadSetFeatureBand}\workloadsets\{WorkloadSetVersion1}"; + VM.GetRemoteDirectory(workloadSet1Path).Should().Exist(); + + // Now, remove pinned workload set from global.json + VM.WriteFile("C:\\SdkTesting\\global.json", "{}").Execute().Should().Pass(); + + // Run workload update to do a GC + VM.CreateRunCommand("dotnet", "workload", "update") + .Execute().Should().Pass(); + + // Workload set 1 should have been GC'd + VM.GetRemoteDirectory(workloadSet1Path).Should().NotExist(); + } + [Fact] public void FinalizerUninstallsWorkloadSets() { From 5fdc29e4b121c241a7685a2dbc8e7c743683743d Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Wed, 28 Aug 2024 09:40:31 -0400 Subject: [PATCH 077/209] Include previews for workload set tests and other fixes --- .../Framework/VMTestBase.cs | 2 +- .../WorkloadSetTests.cs | 42 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/test/dotnet-MsiInstallation.Tests/Framework/VMTestBase.cs b/test/dotnet-MsiInstallation.Tests/Framework/VMTestBase.cs index f6012cec10ff..b36257611896 100644 --- a/test/dotnet-MsiInstallation.Tests/Framework/VMTestBase.cs +++ b/test/dotnet-MsiInstallation.Tests/Framework/VMTestBase.cs @@ -191,7 +191,7 @@ protected string GetInstalledSdkVersion() protected CommandResult InstallWorkload(string workloadName, bool skipManifestUpdate) { - string [] args = { "dotnet", "workload", "install", workloadName}; + string [] args = { "dotnet", "workload", "install", workloadName, "--include-previews"}; if (skipManifestUpdate) { args = [.. args, "--skip-manifest-update"]; diff --git a/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs b/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs index 1f73964b5644..06152247f5bd 100644 --- a/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs +++ b/test/dotnet-MsiInstallation.Tests/WorkloadSetTests.cs @@ -44,7 +44,7 @@ public void DoesNotUseWorkloadSetsByDefault() { InstallSdk(); - VM.CreateRunCommand("dotnet", "workload", "update") + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews") .Execute() .Should() .Pass(); @@ -53,7 +53,7 @@ public void DoesNotUseWorkloadSetsByDefault() AddNuGetSource(@"c:\SdkTesting\WorkloadSets"); - VM.CreateRunCommand("dotnet", "workload", "update") + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews") .Execute() .Should() .Pass(); @@ -70,7 +70,7 @@ void UpdateAndSwitchToWorkloadSetMode(out string updatedWorkloadVersion, out Wor var originalWorkloadVersion = GetWorkloadVersion(); originalWorkloadVersion.Should().StartWith($"{featureBand}-manifests."); - VM.CreateRunCommand("dotnet", "workload", "update") + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews") .Execute() .Should() .Pass(); @@ -102,14 +102,13 @@ public void UpdateWithWorkloadSets() AddNuGetSource(@"c:\SdkTesting\WorkloadSets"); - VM.CreateRunCommand("dotnet", "workload", "update") + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews") .Execute().Should().Pass(); - - var newRollback = GetRollback(); - - newRollback.ManifestVersions.Should().NotBeEquivalentTo(rollbackAfterUpdate.ManifestVersions); GetWorkloadVersion().Should().Be(WorkloadSetVersion2); + + var newRollback = GetRollback(); + newRollback.ManifestVersions.Should().NotBeEquivalentTo(rollbackAfterUpdate.ManifestVersions); } [Fact] @@ -119,7 +118,8 @@ public void UpdateInWorkloadSetModeWithNoAvailableWorkloadSet() UpdateAndSwitchToWorkloadSetMode(out string updatedWorkloadVersion, out WorkloadSet rollbackAfterUpdate); - VM.CreateRunCommand("dotnet", "workload", "update") + // Use a nonexistant source because there may be a valid workload set available on NuGet.org + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews", "--source", @"c:\SdkTesting\EmptySource") .Execute() .Should() .Pass(); @@ -152,7 +152,7 @@ private void UpdateToWorkloadSetVersion(string versionToInstall) AddNuGetSource(@"c:\SdkTesting\WorkloadSets"); - VM.CreateRunCommand("dotnet", "workload", "update", "--version", versionToInstall) + VM.CreateRunCommand("dotnet", "workload", "update", "--version", versionToInstall, "--include-previews") .Execute() .Should() .Pass(); @@ -170,7 +170,7 @@ private void UpdateToWorkloadSetVersion(string versionToInstall) GetWorkloadVersion().Should().Be(versionToInstall); - VM.CreateRunCommand("dotnet", "workload", "update") + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews") .Execute() .Should() .Pass(); @@ -187,7 +187,7 @@ public void UpdateToUnavailableWorkloadSetVersion() var workloadVersionBeforeUpdate = GetWorkloadVersion(); - VM.CreateRunCommand("dotnet", "workload", "update", "--version", unavailableWorkloadSetVersion) + VM.CreateRunCommand("dotnet", "workload", "update", "--version", unavailableWorkloadSetVersion, "--include-previews") .Execute() .Should() .Fail() @@ -213,7 +213,7 @@ public void UpdateWorkloadSetWithoutAvailableManifests() var workloadVersionBeforeUpdate = GetWorkloadVersion(); - VM.CreateRunCommand("dotnet", "workload", "update", "--source", @"c:\SdkTesting\workloadsets") + VM.CreateRunCommand("dotnet", "workload", "update", "--source", @"c:\SdkTesting\workloadsets", "--include-previews") .Execute() .Should() .Fail(); @@ -234,7 +234,7 @@ public void UpdateToWorkloadSetVersionWithManifestsNotAvailable() var workloadVersionBeforeUpdate = GetWorkloadVersion(); - VM.CreateRunCommand("dotnet", "workload", "update", "--version", WorkloadSetVersion2, "--source", @"c:\SdkTesting\workloadsets") + VM.CreateRunCommand("dotnet", "workload", "update", "--version", WorkloadSetVersion2, "--source", @"c:\SdkTesting\workloadsets", "--include-previews") .Execute() .Should() .Fail(); @@ -341,7 +341,7 @@ public void InstallWithVersionWhenPinned() string originalVersion = GetWorkloadVersion(); originalVersion.Should().NotBe(WorkloadSetVersion1); - VM.CreateRunCommand("dotnet", "workload", "update", "--version", WorkloadSetVersion1) + VM.CreateRunCommand("dotnet", "workload", "update", "--version", WorkloadSetVersion1, "--include-previews") .Execute().Should().Pass(); GetWorkloadVersion().Should().Be(WorkloadSetVersion1); @@ -362,7 +362,7 @@ public void InstallWithGlobalJsonWhenPinned() string originalVersion = GetWorkloadVersion(); originalVersion.Should().NotBe(WorkloadSetVersion1); - VM.CreateRunCommand("dotnet", "workload", "update", "--version", WorkloadSetVersion1) + VM.CreateRunCommand("dotnet", "workload", "update", "--version", WorkloadSetVersion1, "--include-previews") .Execute().Should().Pass(); GetWorkloadVersion().Should().Be(WorkloadSetVersion1); @@ -393,7 +393,7 @@ public void UpdateShouldNotPinWorkloadSet() VM.CreateRunCommand("cmd", "/c", "ren", @$"c:\SdkTesting\WorkloadSets\Microsoft.NET.Workloads.{sdkFeatureBand}.*.{packageVersion}.nupkg", $"Microsoft.NET.Workloads.{sdkFeatureBand}.*.{packageVersion}.bak")) .Execute().Should().Pass(); - VM.CreateRunCommand("dotnet", "workload", "update") + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews") .Execute().Should().Pass(); GetWorkloadVersion().Should().Be(WorkloadSetVersion1); @@ -435,7 +435,7 @@ public void GarbageCollectWorkloadSets() AddNuGetSource(@"c:\SdkTesting\WorkloadSets"); // Update to latest workload set version - VM.CreateRunCommand("dotnet", "workload", "update") + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews") .Execute().Should().Pass(); GetWorkloadVersion().Should().Be(WorkloadSetVersion2); @@ -458,12 +458,12 @@ public void GarbageCollectWorkloadSets() VM.WriteFile("C:\\SdkTesting\\global.json", @$"{{""sdk"":{{""workloadVersion"":""{WorkloadSetVersion1}""}}}}").Execute().Should().Pass(); // Install pinned version - VM.CreateRunCommand("dotnet", "workload", "update") + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews") .WithWorkingDirectory(SdkTestingDirectory) .Execute().Should().Pass(); // Update globally installed version to later version - VM.CreateRunCommand("dotnet", "workload", "update") + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews") .Execute().Should().Pass(); // Check workload versions in global context and global.json directory @@ -478,7 +478,7 @@ public void GarbageCollectWorkloadSets() VM.WriteFile("C:\\SdkTesting\\global.json", "{}").Execute().Should().Pass(); // Run workload update to do a GC - VM.CreateRunCommand("dotnet", "workload", "update") + VM.CreateRunCommand("dotnet", "workload", "update", "--include-previews") .Execute().Should().Pass(); // Workload set 1 should have been GC'd From 649824cdb3e388a350ea949ee2d32a040646028f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 29 Aug 2024 08:53:56 +0000 Subject: [PATCH 078/209] Update dependencies from https://github.com/dotnet/razor build 20240829.1 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24428.5 -> To Version 9.0.0-preview.24429.1 --- NuGet.config | 10 ++++++++++ eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/NuGet.config b/NuGet.config index f8ab6b93d779..4073490804d9 100644 --- a/NuGet.config +++ b/NuGet.config @@ -13,6 +13,11 @@ + + + + + @@ -45,6 +50,11 @@ + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f6812708ab1e..f4fb28c5f275 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 - + https://github.com/dotnet/razor - 562be1a2201aa08b09970966224de44d40636d86 + 1f45c70f4f631c06db78bd0fdb450b9a8ab7d039 - + https://github.com/dotnet/razor - 562be1a2201aa08b09970966224de44d40636d86 + 1f45c70f4f631c06db78bd0fdb450b9a8ab7d039 - + https://github.com/dotnet/razor - 562be1a2201aa08b09970966224de44d40636d86 + 1f45c70f4f631c06db78bd0fdb450b9a8ab7d039 - + https://github.com/dotnet/razor - 562be1a2201aa08b09970966224de44d40636d86 + 1f45c70f4f631c06db78bd0fdb450b9a8ab7d039 diff --git a/eng/Versions.props b/eng/Versions.props index e4f2c4b88df8..2f7d8e2408f5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24428.5 - 9.0.0-preview.24428.5 - 9.0.0-preview.24428.5 + 9.0.0-preview.24429.1 + 9.0.0-preview.24429.1 + 9.0.0-preview.24429.1 From a454268fc034c923aafe7868a92cf3b5b00c2269 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 29 Aug 2024 12:46:39 +0000 Subject: [PATCH 079/209] Update dependencies from https://github.com/dotnet/roslyn build 20240828.4 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.11.0-3.24427.13 -> To Version 4.11.0-3.24428.4 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7886cda6f226..29b4a41e2a89 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,34 +82,34 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn - 619d827e31d8c199d397dbc6f7536c293116abc1 + 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn - 619d827e31d8c199d397dbc6f7536c293116abc1 + 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn - 619d827e31d8c199d397dbc6f7536c293116abc1 + 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn - 619d827e31d8c199d397dbc6f7536c293116abc1 + 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn - 619d827e31d8c199d397dbc6f7536c293116abc1 + 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn - 619d827e31d8c199d397dbc6f7536c293116abc1 + 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn - 619d827e31d8c199d397dbc6f7536c293116abc1 + 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 81ae35803554..dfe85a1bfa95 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.11.0-3.24427.13 - 4.11.0-3.24427.13 - 4.11.0-3.24427.13 - 4.11.0-3.24427.13 - 4.11.0-3.24427.13 - 4.11.0-3.24427.13 - 4.11.0-3.24427.13 + 4.11.0-3.24428.4 + 4.11.0-3.24428.4 + 4.11.0-3.24428.4 + 4.11.0-3.24428.4 + 4.11.0-3.24428.4 + 4.11.0-3.24428.4 + 4.11.0-3.24428.4 $(MicrosoftNetCompilersToolsetPackageVersion) From 2b1fb05fd373d32f4d4a235fcc885a195b4738d3 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 29 Aug 2024 12:49:07 +0000 Subject: [PATCH 080/209] Update dependencies from https://github.com/dotnet/roslyn build 20240828.8 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.12.0-3.24427.16 -> To Version 4.12.0-3.24428.8 --- NuGet.config | 10 ++++++++++ eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 3 files changed, 36 insertions(+), 26 deletions(-) diff --git a/NuGet.config b/NuGet.config index f8ab6b93d779..4073490804d9 100644 --- a/NuGet.config +++ b/NuGet.config @@ -13,6 +13,11 @@ + + + + + @@ -45,6 +50,11 @@ + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f6812708ab1e..76edf1dd84e6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ a5feb419073e74562fde38768898988334f379a1 - + https://github.com/dotnet/roslyn - a3dbd808a5ee9b8010d38f37726eeb596e2f3aaa + 14f5b27c7206557c9054ba6ce59cb9c819d5b473 - + https://github.com/dotnet/roslyn - a3dbd808a5ee9b8010d38f37726eeb596e2f3aaa + 14f5b27c7206557c9054ba6ce59cb9c819d5b473 - + https://github.com/dotnet/roslyn - a3dbd808a5ee9b8010d38f37726eeb596e2f3aaa + 14f5b27c7206557c9054ba6ce59cb9c819d5b473 - + https://github.com/dotnet/roslyn - a3dbd808a5ee9b8010d38f37726eeb596e2f3aaa + 14f5b27c7206557c9054ba6ce59cb9c819d5b473 - + https://github.com/dotnet/roslyn - a3dbd808a5ee9b8010d38f37726eeb596e2f3aaa + 14f5b27c7206557c9054ba6ce59cb9c819d5b473 - + https://github.com/dotnet/roslyn - a3dbd808a5ee9b8010d38f37726eeb596e2f3aaa + 14f5b27c7206557c9054ba6ce59cb9c819d5b473 - + https://github.com/dotnet/roslyn - a3dbd808a5ee9b8010d38f37726eeb596e2f3aaa + 14f5b27c7206557c9054ba6ce59cb9c819d5b473 - + https://github.com/dotnet/roslyn - a3dbd808a5ee9b8010d38f37726eeb596e2f3aaa + 14f5b27c7206557c9054ba6ce59cb9c819d5b473 - + https://github.com/dotnet/roslyn - a3dbd808a5ee9b8010d38f37726eeb596e2f3aaa + 14f5b27c7206557c9054ba6ce59cb9c819d5b473 https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index e4f2c4b88df8..5c73e098c8a5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,14 +235,14 @@ - 4.12.0-3.24427.16 - 4.12.0-3.24427.16 - 4.12.0-3.24427.16 - 4.12.0-3.24427.16 - 4.12.0-3.24427.16 - 4.12.0-3.24427.16 - 4.12.0-3.24427.16 - 4.12.0-3.24427.16 + 4.12.0-3.24428.8 + 4.12.0-3.24428.8 + 4.12.0-3.24428.8 + 4.12.0-3.24428.8 + 4.12.0-3.24428.8 + 4.12.0-3.24428.8 + 4.12.0-3.24428.8 + 4.12.0-3.24428.8 From 60ac569f6cbf83f0e08ecd7891c1e2617ffe518d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 29 Aug 2024 12:49:30 +0000 Subject: [PATCH 081/209] Update dependencies from https://github.com/dotnet/msbuild build 20240828.6 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.12.0-preview-24427-01 -> To Version 17.12.0-preview-24428-06 --- NuGet.config | 10 ++++++++++ eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/NuGet.config b/NuGet.config index f8ab6b93d779..4073490804d9 100644 --- a/NuGet.config +++ b/NuGet.config @@ -13,6 +13,11 @@ + + + + + @@ -45,6 +50,11 @@ + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f6812708ab1e..155235a3c4f7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -69,18 +69,18 @@ 84d642485896a97e0e443be75345c6bb1469a338 - + https://github.com/dotnet/msbuild - c256bcca00827368c080b03b001cac2a2c82017f + b82694a16d4963b5765e36fdc89d270fa00dde8e - + https://github.com/dotnet/msbuild - c256bcca00827368c080b03b001cac2a2c82017f + b82694a16d4963b5765e36fdc89d270fa00dde8e - + https://github.com/dotnet/msbuild - c256bcca00827368c080b03b001cac2a2c82017f + b82694a16d4963b5765e36fdc89d270fa00dde8e diff --git a/eng/Versions.props b/eng/Versions.props index e4f2c4b88df8..73c3a071fd74 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -212,8 +212,8 @@ then use that in Directory.Packages.props. At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. --> - 17.12.0-preview-24427-01 - 17.12.0-preview-24427-01 + 17.12.0-preview-24428-06 + 17.12.0-preview-24428-06 $([System.IO.File]::ReadAllText('$(RepoRoot)src\Layout\redist\minimumMSBuildVersion').Trim()) From e3532ae8faeb6e8b18d3429d4f0f4cd437400451 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 29 Aug 2024 12:49:53 +0000 Subject: [PATCH 082/209] Update dependencies from https://github.com/dotnet/sourcelink build 20240828.1 Microsoft.SourceBuild.Intermediate.sourcelink , Microsoft.Build.Tasks.Git , Microsoft.SourceLink.AzureRepos.Git , Microsoft.SourceLink.Bitbucket.Git , Microsoft.SourceLink.Common , Microsoft.SourceLink.GitHub , Microsoft.SourceLink.GitLab From Version 9.0.0-beta.24427.2 -> To Version 9.0.0-beta.24428.1 --- NuGet.config | 10 ++++++++++ eng/Version.Details.xml | 14 +++++++------- eng/Versions.props | 12 ++++++------ 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index f8ab6b93d779..4073490804d9 100644 --- a/NuGet.config +++ b/NuGet.config @@ -13,6 +13,11 @@ + + + + + @@ -45,6 +50,11 @@ + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f6812708ab1e..3ca156fe8335 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -456,32 +456,32 @@ https://github.com/dotnet/deployment-tools 7871ee378dce87b64d930d4f33dca9c888f4034d - + https://github.com/dotnet/sourcelink 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 - + https://github.com/dotnet/sourcelink 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 - + https://github.com/dotnet/sourcelink 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 - + https://github.com/dotnet/sourcelink 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 - + https://github.com/dotnet/sourcelink 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 - + https://github.com/dotnet/sourcelink 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 - + https://github.com/dotnet/sourcelink 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 diff --git a/eng/Versions.props b/eng/Versions.props index e4f2c4b88df8..4cd77da434a1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -320,12 +320,12 @@ - 9.0.0-beta.24427.2 - 9.0.0-beta.24427.2 - 9.0.0-beta.24427.2 - 9.0.0-beta.24427.2 - 9.0.0-beta.24427.2 - 9.0.0-beta.24427.2 + 9.0.0-beta.24428.1 + 9.0.0-beta.24428.1 + 9.0.0-beta.24428.1 + 9.0.0-beta.24428.1 + 9.0.0-beta.24428.1 + 9.0.0-beta.24428.1 From 954f9361f681e81443db17823f42dc68ac60b1b4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 29 Aug 2024 12:50:40 +0000 Subject: [PATCH 083/209] Update dependencies from https://github.com/dotnet/runtime build 20240828.8 Microsoft.Bcl.AsyncInterfaces , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.SystemEvents , System.CodeDom , System.Composition.AttributedModel , System.Composition.Convention , System.Composition.Hosting , System.Composition.Runtime , System.Composition.TypedParts , System.Configuration.ConfigurationManager , System.Formats.Asn1 , 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 , VS.Redist.Common.NetCore.SharedFramework.x64.9.0 , VS.Redist.Common.NetCore.TargetingPack.x64.9.0 , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.0-rc.2.24427.10 -> To Version 9.0.0-rc.2.24428.8 --- NuGet.config | 10 +++ eng/Version.Details.xml | 140 ++++++++++++++++++++-------------------- eng/Versions.props | 68 +++++++++---------- 3 files changed, 114 insertions(+), 104 deletions(-) diff --git a/NuGet.config b/NuGet.config index f8ab6b93d779..4073490804d9 100644 --- a/NuGet.config +++ b/NuGet.config @@ -13,6 +13,11 @@ + + + + + @@ -45,6 +50,11 @@ + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f6812708ab1e..cf6af2f73a33 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,42 +15,42 @@ 133c2a92258a1d4047eb077e39aa82b445dd57f5 - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d @@ -226,29 +226,29 @@ 54964cdbcd254cbce066d3a2afa2b3908db51abd - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d https://github.com/dotnet/windowsdesktop @@ -499,89 +499,89 @@ - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d https://github.com/dotnet/aspnetcore 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d @@ -615,9 +615,9 @@ 60ae233c3d77f11c5fdb53e570b64d503b13ba59 - + https://github.com/dotnet/runtime - d5e636923fb1670597b536fa8a6fce4a06822e87 + 0a5cccb57942c0493ef680f559f69866f3b1eb7d https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index e4f2c4b88df8..82478b6b69a2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,47 +122,47 @@ - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 8.0.0-rc.1.23414.4 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 2.1.0 - 9.0.0-rc.2.24427.10 + 9.0.0-rc.2.24428.8 8.0.0 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 8.0.0 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 8.0.4 - 9.0.0-rc.2.24427.10 - 9.0.0-rc.2.24427.10 + 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24428.8 From 1aa53f546b28caa91db95a463e9c668b760f4127 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 29 Aug 2024 14:03:40 +0000 Subject: [PATCH 084/209] Update dependencies from https://github.com/dotnet/test-templates build 20240829.1 Microsoft.SourceBuild.Intermediate.test-templates , Microsoft.DotNet.Test.ProjectTemplates.9.0 From Version 1.1.0-rc.24427.1 -> To Version 1.1.0-rc.24429.1 --- NuGet.config | 10 ++++++++++ eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/NuGet.config b/NuGet.config index f8ab6b93d779..4073490804d9 100644 --- a/NuGet.config +++ b/NuGet.config @@ -13,6 +13,11 @@ + + + + + @@ -45,6 +50,11 @@ + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f6812708ab1e..492b51660051 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -375,14 +375,14 @@ https://github.com/dotnet/test-templates 49c9ad01f057b3c6352bbec12b117acc2224493c - + https://github.com/dotnet/test-templates - 9fea743e85a24984211f854d44f1f6debea8285d + f0bd96ccdcc784f6f013fa0fef8f36381a230735 - + https://github.com/dotnet/test-templates - 9fea743e85a24984211f854d44f1f6debea8285d + f0bd96ccdcc784f6f013fa0fef8f36381a230735 diff --git a/eng/Versions.props b/eng/Versions.props index e4f2c4b88df8..7fb6df8bcb6e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -118,7 +118,7 @@ 1.1.0-rc.24069.1 1.1.0-rc.24202.1 - 1.1.0-rc.24427.1 + 1.1.0-rc.24429.1 From e0e0be9666ad9bc612c217d84e1667ef923f8347 Mon Sep 17 00:00:00 2001 From: MichalPavlik Date: Thu, 29 Aug 2024 17:25:07 +0200 Subject: [PATCH 085/209] Update Microsoft.DotNet.Cli.Utils.csproj --- .../Microsoft.DotNet.Cli.Utils.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj b/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj index 94beec920221..71d901b852af 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj +++ b/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj @@ -27,7 +27,7 @@ for Mac and other VS scenarios. During source-build, we only have access to the latest version, which targets NetCurrent. --> - $(PkgMicrosoft_Build_Runtime)\contentFiles\any\net8.0\MSBuild.dll + $(PkgMicrosoft_Build_Runtime)\contentFiles\any\net9.0\MSBuild.dll $(PkgMicrosoft_Build_Runtime)\contentFiles\any\$(NetCurrent)\MSBuild.dll From 732799a14e959c1ba071120b4a84d663eb551e92 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 29 Aug 2024 16:23:06 +0000 Subject: [PATCH 086/209] Update dependencies from https://github.com/nuget/nuget.client build 6.12.0.87 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 From Version 6.12.0-preview.1.85 -> To Version 6.12.0-preview.1.87 --- NuGet.config | 10 ++++++ eng/Version.Details.xml | 68 ++++++++++++++++++++--------------------- eng/Versions.props | 24 +++++++-------- 3 files changed, 56 insertions(+), 46 deletions(-) diff --git a/NuGet.config b/NuGet.config index f8ab6b93d779..4073490804d9 100644 --- a/NuGet.config +++ b/NuGet.config @@ -13,6 +13,11 @@ + + + + + @@ -45,6 +50,11 @@ + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f6812708ab1e..a740c31486cf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -139,74 +139,74 @@ https://github.com/dotnet/aspnetcore 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/nuget/nuget.client - 9cb26528a73dce163a0288268c6139ee8519d85f + 3db80da582371f1387cd0b3ea029198c76cb78ff https://github.com/microsoft/vstest diff --git a/eng/Versions.props b/eng/Versions.props index e4f2c4b88df8..5991eff0bfd6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -173,18 +173,18 @@ - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 - 6.12.0-preview.1.85 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 + 6.12.0-preview.1.87 From 96b25a8a9bb7684be580bd0968fd68f516500e1e Mon Sep 17 00:00:00 2001 From: Sean Reeser Date: Thu, 29 Aug 2024 11:11:05 -0700 Subject: [PATCH 087/209] Update branding to 8.0.110 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 384eacff7070..004a46e00168 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -11,7 +11,7 @@ - 8.0.109 + 8.0.110 true release From 41a32e4e120f25c7bf172447769834fd07a471f8 Mon Sep 17 00:00:00 2001 From: Sean Reeser Date: Thu, 29 Aug 2024 11:11:11 -0700 Subject: [PATCH 088/209] Update branding to 8.0.306 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 318f7cda0813..b32344d001f1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -11,7 +11,7 @@ - 8.0.305 + 8.0.306 8.0.300 true From 1e3e394456ee0e06c590ab2624da89f7fa5db82a Mon Sep 17 00:00:00 2001 From: Sean Reeser Date: Thu, 29 Aug 2024 11:11:17 -0700 Subject: [PATCH 089/209] Update branding to 8.0.403 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 9043b85b60bc..194ec14ee2f3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -11,7 +11,7 @@ - 8.0.402 + 8.0.403 8.0.400 true From 6ccac5fda3d3cd200e981e4eeb6f123552f69fcf Mon Sep 17 00:00:00 2001 From: Forgind <12969783+Forgind@users.noreply.github.com> Date: Thu, 29 Aug 2024 13:13:52 -0700 Subject: [PATCH 090/209] Enable workload search for users to find latest set versions (#42652) Progress on #42367 This adds three new parameters to the dotnet workload list command: version, --take, and --format. If version is specified, it will print the most recent `--take` workload sets (within the feature band; default (or if you specify a value < 1) is 5) and output them in --format (which can be json or csv; default (unspecified or other) is to put each version on its own line). ```terminal > dotnet workload search version 9.0.105 9.0.104 9.0.103 9.0.102 9.0.101 ``` ```terminal > dotnet workload search version --format json --take 2 [{ "workloadVersion": "9.0.105"},{ "workloadVersion": "9.0.104" }] ``` ### Converting the json output to lines/other formats #### sh (with jq) ```bash > dotnet workload search version --format json --take 2 | jq 'map(.workloadVersion) | .[]' 9.0.105 9.0.104 ``` #### Powershell core ```powershell > dotnet workload search version --format json --take 2 | ConvertFrom-Json | ForEach-Object { Write-Host $_.workloadVersion } 9.0.105 9.0.104 ``` --- .../INuGetPackageDownloader.cs | 5 ++ .../NuGetPackageDownloader.cs | 34 +++++++++---- .../search/LocalizableStrings.resx | 10 ++++ .../search/SearchWorkloadSetsParser.cs | 48 +++++++++++++++++++ .../search/WorkloadSearchCommand.cs | 40 ++++++++++++++++ .../search/WorkloadSearchCommandParser.cs | 1 + .../search/xlf/LocalizableStrings.cs.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.de.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.es.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.fr.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.it.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.ja.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.ko.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.pl.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.pt-BR.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.ru.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.tr.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.zh-Hans.xlf | 15 ++++++ .../search/xlf/LocalizableStrings.zh-Hant.xlf | 15 ++++++ .../FailingNuGetPackageInstaller.cs | 1 + .../MockNuGetPackageInstaller.cs | 2 + 21 files changed, 326 insertions(+), 10 deletions(-) create mode 100644 src/Cli/dotnet/commands/dotnet-workload/search/SearchWorkloadSetsParser.cs diff --git a/src/Cli/dotnet/NugetPackageDownloader/INuGetPackageDownloader.cs b/src/Cli/dotnet/NugetPackageDownloader/INuGetPackageDownloader.cs index d2d340ccefb1..2ce33f5d8158 100644 --- a/src/Cli/dotnet/NugetPackageDownloader/INuGetPackageDownloader.cs +++ b/src/Cli/dotnet/NugetPackageDownloader/INuGetPackageDownloader.cs @@ -29,6 +29,11 @@ Task GetLatestPackageVersion(PackageId packageId, PackageSourceLocation packageSourceLocation = null, bool includePreview = false); + Task> GetLatestPackageVersions(PackageId packageId, + int numberOfResults, + PackageSourceLocation packageSourceLocation = null, + bool includePreview = false); + Task GetBestPackageVersionAsync(PackageId packageId, VersionRange versionRange, PackageSourceLocation packageSourceLocation = null); diff --git a/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs b/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs index c1c4d9318862..ede94d7056b2 100644 --- a/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs +++ b/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs @@ -227,6 +227,12 @@ public async Task> ExtractPackageAsync(string packagePath, D return allFilesInPackage; } + public async Task> GetLatestVersionsOfPackage(string packageId, bool includePreview, int numberOfResults) + { + IEnumerable packageSources = LoadNuGetSources(new PackageId(packageId), null, null); + return (await GetLatestVersionsInternalAsync(packageId, packageSources, includePreview, CancellationToken.None, numberOfResults)).Select(result => result.Item2); + } + private async Task<(PackageSource, NuGetVersion)> GetPackageSourceAndVersion(PackageId packageId, NuGetVersion packageVersion = null, PackageSourceLocation packageSourceLocation = null, @@ -489,8 +495,13 @@ private static string GenerateVersionRangeErrorDescription(string packageIdentif string packageIdentifier, IEnumerable packageSources, bool includePreview, CancellationToken cancellationToken) { - ArgumentNullException.ThrowIfNull(packageSources); + return (await GetLatestVersionsInternalAsync(packageIdentifier, packageSources, includePreview, cancellationToken, 1)).First(); + } + private async Task> GetLatestVersionsInternalAsync( + string packageIdentifier, IEnumerable packageSources, bool includePreview, CancellationToken cancellationToken, int numberOfResults) + { + ArgumentNullException.ThrowIfNull(packageSources); if (string.IsNullOrWhiteSpace(packageIdentifier)) { throw new ArgumentException($"{nameof(packageIdentifier)} cannot be null or empty", @@ -540,13 +551,13 @@ await Task.WhenAll( if (stableVersions.Any()) { - return stableVersions.MaxBy(r => r.package.Identity.Version); + return stableVersions.OrderByDescending(r => r.package.Identity.Version).Take(numberOfResults); } } - (PackageSource, IPackageSearchMetadata) latestVersion = accumulativeSearchResults - .MaxBy(r => r.package.Identity.Version); - return latestVersion; + IEnumerable<(PackageSource, IPackageSearchMetadata)> latestVersions = accumulativeSearchResults + .OrderByDescending(r => r.package.Identity.Version); + return latestVersions.Take(numberOfResults); } public async Task GetBestPackageVersionAsync(PackageId packageId, @@ -691,15 +702,18 @@ bool TryGetPackageMetadata( public async Task GetLatestPackageVersion(PackageId packageId, PackageSourceLocation packageSourceLocation = null, bool includePreview = false) + { + return (await GetLatestPackageVersions(packageId, numberOfResults: 1, packageSourceLocation, includePreview)).First(); + } + + public async Task> GetLatestPackageVersions(PackageId packageId, int numberOfResults, PackageSourceLocation packageSourceLocation = null, bool includePreview = false) { CancellationToken cancellationToken = CancellationToken.None; - IPackageSearchMetadata packageMetadata; IEnumerable packagesSources = LoadNuGetSources(packageId, packageSourceLocation); - (_, packageMetadata) = await GetLatestVersionInternalAsync(packageId.ToString(), packagesSources, - includePreview, cancellationToken).ConfigureAwait(false); - - return packageMetadata.Identity.Version; + return (await GetLatestVersionsInternalAsync(packageId.ToString(), packagesSources, + includePreview, cancellationToken, numberOfResults).ConfigureAwait(false)).Select(result => + result.Item2.Identity.Version); } public async Task> GetPackageIdsAsync(string idStem, bool allowPrerelease, PackageSourceLocation packageSourceLocation = null, CancellationToken cancellationToken = default) diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/LocalizableStrings.resx b/src/Cli/dotnet/commands/dotnet-workload/search/LocalizableStrings.resx index 9c63c4f22930..fd9f416abf30 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/LocalizableStrings.resx +++ b/src/Cli/dotnet/commands/dotnet-workload/search/LocalizableStrings.resx @@ -135,4 +135,14 @@ Platforms + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + Changes the format of outputted workload versions. Can take 'json' or 'list' + + + The --take option must be positive. + diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/SearchWorkloadSetsParser.cs b/src/Cli/dotnet/commands/dotnet-workload/search/SearchWorkloadSetsParser.cs new file mode 100644 index 000000000000..5ffecb96ad9f --- /dev/null +++ b/src/Cli/dotnet/commands/dotnet-workload/search/SearchWorkloadSetsParser.cs @@ -0,0 +1,48 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.CommandLine; +using Microsoft.DotNet.Workloads.Workload.Search; +using LocalizableStrings = Microsoft.DotNet.Workloads.Workload.Search.LocalizableStrings; + +namespace Microsoft.DotNet.Cli +{ + internal static class SearchWorkloadSetsParser + { + public static readonly CliOption TakeOption = new("--take") { DefaultValueFactory = (_) => 5 }; + + public static readonly CliOption FormatOption = new("--format") + { + Description = LocalizableStrings.FormatOptionDescription + }; + + private static readonly CliCommand Command = ConstructCommand(); + + public static CliCommand GetCommand() + { + return Command; + } + + private static CliCommand ConstructCommand() + { + var command = new CliCommand("version", LocalizableStrings.PrintSetVersionsDescription); + command.Options.Add(FormatOption); + command.Options.Add(TakeOption); + + TakeOption.Validators.Add(optionResult => + { + if (optionResult.GetValueOrDefault() <= 0) + { + throw new ArgumentException(LocalizableStrings.TakeOptionMustBePositive); + } + }); + + command.SetAction(parseResult => new WorkloadSearchCommand(parseResult) + { + ListWorkloadSetVersions = true + }.Execute()); + + return command; + } + } +} diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/WorkloadSearchCommand.cs b/src/Cli/dotnet/commands/dotnet-workload/search/WorkloadSearchCommand.cs index f1e62b7c8bf9..3cbe4e79dbab 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/WorkloadSearchCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/search/WorkloadSearchCommand.cs @@ -2,11 +2,14 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.CommandLine; +using System.Text.Json; using Microsoft.Deployment.DotNet.Releases; using Microsoft.DotNet.Cli; +using Microsoft.DotNet.Cli.NuGetPackageDownloader; using Microsoft.DotNet.Cli.Utils; using Microsoft.DotNet.Workloads.Workload.Install; using Microsoft.NET.Sdk.WorkloadManifestReader; +using Microsoft.TemplateEngine.Cli.Commands; namespace Microsoft.DotNet.Workloads.Workload.Search { @@ -15,6 +18,10 @@ internal class WorkloadSearchCommand : WorkloadCommandBase private readonly IWorkloadResolver _workloadResolver; private readonly ReleaseVersion _sdkVersion; private readonly string _workloadIdStub; + private readonly int _numberOfWorkloadSetsToTake; + private readonly string _workloadSetOutputFormat; + private readonly IWorkloadManifestInstaller _installer; + internal bool ListWorkloadSetVersions { get; set; } = false; public WorkloadSearchCommand( ParseResult result, @@ -34,10 +41,43 @@ public WorkloadSearchCommand( _sdkVersion = creationResult.SdkVersion; _workloadResolver = creationResult.WorkloadResolver; + + _numberOfWorkloadSetsToTake = result.GetValue(SearchWorkloadSetsParser.TakeOption); + _workloadSetOutputFormat = result.GetValue(SearchWorkloadSetsParser.FormatOption); + + _installer = WorkloadInstallerFactory.GetWorkloadInstaller( + reporter, + new SdkFeatureBand(_sdkVersion), + _workloadResolver, + Verbosity, + creationResult.UserProfileDir, + !SignCheck.IsDotNetSigned(), + restoreActionConfig: new RestoreActionConfig(result.HasOption(SharedOptions.InteractiveOption)), + elevationRequired: false, + shouldLog: false); } public override int Execute() { + if (ListWorkloadSetVersions) + { + var featureBand = new SdkFeatureBand(_sdkVersion); + var packageId = _installer.GetManifestPackageId(new ManifestId("Microsoft.NET.Workloads"), featureBand); + var versions = PackageDownloader.GetLatestPackageVersions(packageId, _numberOfWorkloadSetsToTake, packageSourceLocation: null, includePreview: !string.IsNullOrWhiteSpace(_sdkVersion.Prerelease)) + .GetAwaiter().GetResult() + .Select(version => WorkloadManifestUpdater.WorkloadSetPackageVersionToWorkloadSetVersion(featureBand, version.Version.ToString())); + if (_workloadSetOutputFormat?.Equals("json", StringComparison.OrdinalIgnoreCase) == true) + { + Reporter.WriteLine(JsonSerializer.Serialize(versions.Select(version => version.ToDictionary(_ => "workloadVersion", v => v)))); + } + else + { + Reporter.WriteLine(string.Join('\n', versions)); + } + + return 0; + } + IEnumerable availableWorkloads = _workloadResolver.GetAvailableWorkloads() .OrderBy(workload => workload.Id); diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/WorkloadSearchCommandParser.cs b/src/Cli/dotnet/commands/dotnet-workload/search/WorkloadSearchCommandParser.cs index da9a1b58fcd2..d4573cb168b9 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/WorkloadSearchCommandParser.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/search/WorkloadSearchCommandParser.cs @@ -29,6 +29,7 @@ public static CliCommand GetCommand() private static CliCommand ConstructCommand() { var command = new CliCommand("search", LocalizableStrings.CommandDescription); + command.Subcommands.Add(SearchWorkloadSetsParser.GetCommand()); command.Arguments.Add(WorkloadIdStubArgument); command.Options.Add(CommonOptions.HiddenVerbosityOption); command.Options.Add(VersionOption); diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.cs.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.cs.xlf index bf7983394465..4a242ec47e04 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.cs.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.cs.xlf @@ -12,11 +12,26 @@ Popis + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms Platformy + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID ID úlohy diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.de.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.de.xlf index 7a311f21b6bf..8e6f44d5c98f 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.de.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.de.xlf @@ -12,11 +12,26 @@ Beschreibung + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms Plattformen + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID Workload-ID diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.es.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.es.xlf index 7f34275a2b06..5dcfe83d51ca 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.es.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.es.xlf @@ -12,11 +12,26 @@ Descripción + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms Plataformas + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID Id. de carga de trabajo diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.fr.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.fr.xlf index d69e54fb9abd..9cdb89c94765 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.fr.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.fr.xlf @@ -12,11 +12,26 @@ Description + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms Plateformes + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID ID de charge de travail diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.it.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.it.xlf index 7d49c76680ee..74f8259e7a7d 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.it.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.it.xlf @@ -12,11 +12,26 @@ Descrizione + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms Piattaforme + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID ID del carico di lavoro diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ja.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ja.xlf index 3c4457542be1..114e086d1741 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ja.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ja.xlf @@ -12,11 +12,26 @@ 説明 + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms プラットフォーム + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID ワークロード ID diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ko.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ko.xlf index ca2a83fc40e1..0b176603098e 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ko.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ko.xlf @@ -12,11 +12,26 @@ 설명 + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms 플랫폼 + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID 워크로드 ID diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.pl.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.pl.xlf index ac4eddd1725f..3973c8445fdc 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.pl.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.pl.xlf @@ -12,11 +12,26 @@ Opis + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms Platformy + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID Identyfikator pakietu roboczego diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.pt-BR.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.pt-BR.xlf index 09a80f1bb180..ec59bb07dea8 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.pt-BR.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.pt-BR.xlf @@ -12,11 +12,26 @@ Descrição + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms Plataformas + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID ID de Carga de trabalho diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ru.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ru.xlf index 3a1d1b55fe58..6c690d53352d 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ru.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.ru.xlf @@ -12,11 +12,26 @@ Описание + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms Платформы + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID ИД рабочей нагрузки diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.tr.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.tr.xlf index ea84045c4254..d9b26a9b0ffb 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.tr.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.tr.xlf @@ -12,11 +12,26 @@ Açıklama + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms Platformlar + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID İş yükü kimliği diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.zh-Hans.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.zh-Hans.xlf index 88c840ef1749..0f6ee207129c 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.zh-Hans.xlf @@ -12,11 +12,26 @@ 说明 + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms 平台 + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID 工作负载 ID diff --git a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.zh-Hant.xlf b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.zh-Hant.xlf index 1d5f48a9f278..0156ca1b3d1e 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/commands/dotnet-workload/search/xlf/LocalizableStrings.zh-Hant.xlf @@ -12,11 +12,26 @@ 描述 + + Changes the format of outputted workload versions. Can take 'json' or 'list' + Changes the format of outputted workload versions. Can take 'json' or 'list' + + Platforms 平台 + + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Output a list of the latest released workload versions. Takes the --take option to specify how many to provide and --format to alter the format. + Do not localize --take or --format + + + The --take option must be positive. + The --take option must be positive. + + Workload ID 工作負載識別碼 diff --git a/test/dotnet-workload-install.Tests/FailingNuGetPackageInstaller.cs b/test/dotnet-workload-install.Tests/FailingNuGetPackageInstaller.cs index 6f10a82923e5..e77075b2051a 100644 --- a/test/dotnet-workload-install.Tests/FailingNuGetPackageInstaller.cs +++ b/test/dotnet-workload-install.Tests/FailingNuGetPackageInstaller.cs @@ -38,6 +38,7 @@ public Task> ExtractPackageAsync(string packagePath, Directo } public Task GetLatestPackageVersion(PackageId packageId, PackageSourceLocation packageSourceLocation = null, bool includePreview = false) => throw new NotImplementedException(); + public Task> GetLatestPackageVersions(PackageId packageId, int numberOfResults, PackageSourceLocation packageSourceLocation = null, bool includePreview = false) => throw new NotImplementedException(); public Task GetBestPackageVersionAsync(PackageId packageId, VersionRange versionRange, PackageSourceLocation packageSourceLocation = null) => throw new NotImplementedException(); public Task GetPackageUrl(PackageId packageId, NuGetVersion packageVersion, diff --git a/test/dotnet-workload-install.Tests/MockNuGetPackageInstaller.cs b/test/dotnet-workload-install.Tests/MockNuGetPackageInstaller.cs index 84c60802bd1d..0a3728002e03 100644 --- a/test/dotnet-workload-install.Tests/MockNuGetPackageInstaller.cs +++ b/test/dotnet-workload-install.Tests/MockNuGetPackageInstaller.cs @@ -79,6 +79,8 @@ public Task> ExtractPackageAsync(string packagePath, Directo return Task.FromResult(new List() as IEnumerable); } + public Task> GetLatestPackageVersions(PackageId packageId, int numberOfResults, PackageSourceLocation packageSourceLocation = null, bool includePreview = false) => Task.FromResult(Enumerable.Empty()); + public Task GetLatestPackageVersion(PackageId packageId, PackageSourceLocation packageSourceLocation = null, bool includePreview = false) { return Task.FromResult(new NuGetVersion("10.0.0")); From 032015912914d7a9dccf8d4e7a8d8ad673c05b92 Mon Sep 17 00:00:00 2001 From: Rainer Sigwald Date: Thu, 29 Aug 2024 16:15:13 -0500 Subject: [PATCH 091/209] Let resolvers for core target current TF --- Directory.Build.props | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 14a8d9d004bf..90b657484e81 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -38,11 +38,8 @@ $(SdkTargetFramework) net8.0 - - net8.0 - - $(SdkTargetFramework) + + $(SdkTargetFramework) From abd159c297d27007307bec30509a410650202cea Mon Sep 17 00:00:00 2001 From: Forgind <12969783+Forgind@users.noreply.github.com> Date: Thu, 29 Aug 2024 14:51:51 -0700 Subject: [PATCH 092/209] Enable --source for global/path tool install (#42965) Fixes #37716 --- src/Cli/dotnet/ToolPackage/PackageLocation.cs | 5 ++- .../ToolPackage/ToolPackageDownloader.cs | 3 +- .../install/LocalizableStrings.resx | 8 +++- .../install/ToolInstallCommandParser.cs | 11 ++++-- .../ToolInstallGlobalOrToolPathCommand.cs | 8 ++-- .../install/xlf/LocalizableStrings.cs.xlf | 14 ++++++- .../install/xlf/LocalizableStrings.de.xlf | 14 ++++++- .../install/xlf/LocalizableStrings.es.xlf | 14 ++++++- .../install/xlf/LocalizableStrings.fr.xlf | 14 ++++++- .../install/xlf/LocalizableStrings.it.xlf | 14 ++++++- .../install/xlf/LocalizableStrings.ja.xlf | 14 ++++++- .../install/xlf/LocalizableStrings.ko.xlf | 14 ++++++- .../install/xlf/LocalizableStrings.pl.xlf | 14 ++++++- .../install/xlf/LocalizableStrings.pt-BR.xlf | 14 ++++++- .../install/xlf/LocalizableStrings.ru.xlf | 14 ++++++- .../install/xlf/LocalizableStrings.tr.xlf | 14 ++++++- .../xlf/LocalizableStrings.zh-Hans.xlf | 14 ++++++- .../xlf/LocalizableStrings.zh-Hant.xlf | 14 ++++++- .../ToolPackageDownloaderMock.cs | 15 +++++-- ...ToolInstallGlobalOrToolPathCommandTests.cs | 39 +++++++++++++++++++ 20 files changed, 232 insertions(+), 39 deletions(-) diff --git a/src/Cli/dotnet/ToolPackage/PackageLocation.cs b/src/Cli/dotnet/ToolPackage/PackageLocation.cs index 482b1d08a2df..8acc40c61f70 100644 --- a/src/Cli/dotnet/ToolPackage/PackageLocation.cs +++ b/src/Cli/dotnet/ToolPackage/PackageLocation.cs @@ -10,15 +10,18 @@ internal class PackageLocation public PackageLocation( FilePath? nugetConfig = null, DirectoryPath? rootConfigDirectory = null, - string[] additionalFeeds = null) + string[] additionalFeeds = null, + string[] sourceFeedOverrides = null) { NugetConfig = nugetConfig; RootConfigDirectory = rootConfigDirectory; AdditionalFeeds = additionalFeeds ?? Array.Empty(); + SourceFeedOverrides = sourceFeedOverrides ?? Array.Empty(); } public FilePath? NugetConfig { get; } public DirectoryPath? RootConfigDirectory { get; } public string[] AdditionalFeeds { get; } + public string[] SourceFeedOverrides { get; } } } diff --git a/src/Cli/dotnet/ToolPackage/ToolPackageDownloader.cs b/src/Cli/dotnet/ToolPackage/ToolPackageDownloader.cs index 84d07f2eef12..cca3de9bba0c 100644 --- a/src/Cli/dotnet/ToolPackage/ToolPackageDownloader.cs +++ b/src/Cli/dotnet/ToolPackage/ToolPackageDownloader.cs @@ -102,7 +102,7 @@ public IToolPackage InstallPackage(PackageLocation packageLocation, PackageId pa var assetFileDirectory = isGlobalTool ? _globalToolStageDir : _localToolAssetDir; var nugetPackageDownloader = new NuGetPackageDownloader.NuGetPackageDownloader(toolDownloadDir, verboseLogger: nugetLogger, shouldUsePackageSourceMapping: true, verbosityOptions: verbosity); - var packageSourceLocation = new PackageSourceLocation(packageLocation.NugetConfig, packageLocation.RootConfigDirectory, null, packageLocation.AdditionalFeeds); + var packageSourceLocation = new PackageSourceLocation(packageLocation.NugetConfig, packageLocation.RootConfigDirectory, packageLocation.SourceFeedOverrides, packageLocation.AdditionalFeeds); bool givenSpecificVersion = false; if (versionRange.MinVersion != null && versionRange.MaxVersion != null && versionRange.MinVersion == versionRange.MaxVersion) @@ -403,6 +403,7 @@ public NuGetVersion GetNuGetVersion( var packageSourceLocation = new PackageSourceLocation( nugetConfig: packageLocation.NugetConfig, rootConfigDirectory: packageLocation.RootConfigDirectory, + sourceFeedOverrides: packageLocation.SourceFeedOverrides, additionalSourceFeeds: packageLocation.AdditionalFeeds); return nugetPackageDownloader.GetBestPackageVersionAsync(packageId, versionRange, packageSourceLocation).GetAwaiter().GetResult(); diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/LocalizableStrings.resx b/src/Cli/dotnet/commands/dotnet-tool/install/LocalizableStrings.resx index 03a66b2fc690..11ab99870bff 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/LocalizableStrings.resx +++ b/src/Cli/dotnet/commands/dotnet-tool/install/LocalizableStrings.resx @@ -133,11 +133,17 @@ The version of the tool package to install. - SOURCE + ADDSOURCE Add an additional NuGet package source to use during installation. + + SOURCE + + + Replace all NuGet package sources to use during installation with these. + Install global or local tool. Local tools are added to manifest and restored. diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/ToolInstallCommandParser.cs b/src/Cli/dotnet/commands/dotnet-tool/install/ToolInstallCommandParser.cs index 2a4f0d28db6c..3c21b0c5bd19 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/ToolInstallCommandParser.cs +++ b/src/Cli/dotnet/commands/dotnet-tool/install/ToolInstallCommandParser.cs @@ -29,7 +29,13 @@ internal static class ToolInstallCommandParser HelpName = LocalizableStrings.ConfigFileOptionName }; - private static readonly CliOption addSourceOption = new CliOption("--add-source") + public static readonly CliOption SourceOption = new CliOption("--source") + { + Description = LocalizableStrings.SourceOptionDescription, + HelpName = LocalizableStrings.SourceOptionName + }.AllowSingleArgPerToken(); + + public static readonly CliOption AddSourceOption = new CliOption("--add-source") { Description = LocalizableStrings.AddSourceOptionDescription, HelpName = LocalizableStrings.AddSourceOptionName @@ -76,8 +82,6 @@ internal static class ToolInstallCommandParser private static readonly CliCommand Command = ConstructCommand(); - public static CliOption AddSourceOption => addSourceOption; - public static CliCommand GetCommand() { return Command; @@ -109,6 +113,7 @@ public static CliCommand AddCommandOptions(CliCommand command) command.Options.Add(ConfigOption); command.Options.Add(ToolManifestOption.WithHelpDescription(command, LocalizableStrings.ManifestPathOptionDescription)); command.Options.Add(AddSourceOption); + command.Options.Add(SourceOption); command.Options.Add(FrameworkOption); command.Options.Add(PrereleaseOption); command.Options.Add(ToolCommandRestorePassThroughOptions.DisableParallelOption); diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/ToolInstallGlobalOrToolPathCommand.cs b/src/Cli/dotnet/commands/dotnet-tool/install/ToolInstallGlobalOrToolPathCommand.cs index e0e5d9cc006d..9793d2e2a686 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/ToolInstallGlobalOrToolPathCommand.cs +++ b/src/Cli/dotnet/commands/dotnet-tool/install/ToolInstallGlobalOrToolPathCommand.cs @@ -39,6 +39,7 @@ internal class ToolInstallGlobalOrToolPathCommand : CommandBase private readonly string _configFilePath; private readonly string _framework; private readonly string[] _source; + private readonly string[] _addSource; private readonly bool _global; private readonly VerbosityOptions _verbosity; private readonly string _toolPath; @@ -64,7 +65,8 @@ public ToolInstallGlobalOrToolPathCommand( _packageId = packageId ?? (packageIdArgument is not null ? new PackageId(packageIdArgument) : null); _configFilePath = parseResult.GetValue(ToolInstallCommandParser.ConfigOption); _framework = parseResult.GetValue(ToolInstallCommandParser.FrameworkOption); - _source = parseResult.GetValue(ToolInstallCommandParser.AddSourceOption); + _source = parseResult.GetValue(ToolInstallCommandParser.SourceOption); + _addSource = parseResult.GetValue(ToolInstallCommandParser.AddSourceOption); _global = parseResult.GetValue(ToolAppliedOption.GlobalOption); _verbosity = GetValueOrDefault(ToolInstallCommandParser.VerbosityOption, VerbosityOptions.minimal, parseResult); _toolPath = parseResult.GetValue(ToolAppliedOption.ToolPathOption); @@ -182,7 +184,7 @@ private int ExecuteInstallCommand(PackageId packageId) RunWithHandlingInstallError(() => { IToolPackage newInstalledPackage = toolPackageDownloader.InstallPackage( - new PackageLocation(nugetConfig: GetConfigFile(), additionalFeeds: _source), + new PackageLocation(nugetConfig: GetConfigFile(), sourceFeedOverrides: _source, additionalFeeds: _addSource), packageId: packageId, versionRange: versionRange, targetFramework: _framework, @@ -234,7 +236,7 @@ private int ExecuteInstallCommand(PackageId packageId) private NuGetVersion GetBestMatchNugetVersion(PackageId packageId, VersionRange versionRange, IToolPackageDownloader toolPackageDownloader) { return toolPackageDownloader.GetNuGetVersion( - packageLocation: new PackageLocation(nugetConfig: GetConfigFile(), additionalFeeds: _source), + packageLocation: new PackageLocation(nugetConfig: GetConfigFile(), sourceFeedOverrides: _source, additionalFeeds: _addSource), packageId: packageId, versionRange: versionRange, verbosity: _verbosity, diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.cs.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.cs.xlf index b0aa9c495588..256504ce8a6f 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.cs.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.cs.xlf @@ -93,6 +93,16 @@ Pokud jste chtěli vytvořit manifest, použijte příznak --create-manifest-if- Povolí nástroji .NET přejít na novější verze modulu .NET runtime, pokud není nainstalován modul runtime, na který cílí. + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. Verze balíčku nástroje, který se má nainstalovat @@ -183,8 +193,8 @@ Další příčiny, včetně vynucování formátu názvů balíčků, najdete t - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.de.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.de.xlf index 333c4d572581..bc47524a87b0 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.de.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.de.xlf @@ -93,6 +93,16 @@ Wenn Sie ein Manifest erstellen möchten, verwenden Sie das Flag „--create-man Ermöglicht einem .NET-Tool, ein Rollforward auf neuere Versionen der .NET-Runtime auszuführen, wenn die Runtime, auf die es abzielt, nicht installiert ist. + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. Die Version des zu installierenden Toolpakets. @@ -183,8 +193,8 @@ Weitere Gründe sowie Informationen zum Erzwingen der Paketbenennung finden Sie - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.es.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.es.xlf index b977cf36fc3f..a27ad2a4de9a 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.es.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.es.xlf @@ -93,6 +93,16 @@ Si desea crear un manifiesto, use la marca "--create-manifest-if-needed" con el Permitir que una herramienta .NET se ponga al día a versiones más recientes del runtime de .NET si el runtime al que se dirige no está instalado. + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. La versión del paquete de herramientas para instalar. @@ -183,8 +193,8 @@ Para ver más razones, como el cumplimiento de la nomenclatura de los paquetes, - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.fr.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.fr.xlf index 3579f944f2a6..97711612024a 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.fr.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.fr.xlf @@ -93,6 +93,16 @@ Si vous souhaitez créer un manifeste, utilisez l’option `--create-manifest-if Autorisez un outil .NET à être restauré par progression vers des versions plus récentes du runtime .NET si le runtime qu’il cible n’est pas installé. + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. Version du package d'outils à installer. @@ -183,8 +193,8 @@ Pour plus d'informations, notamment sur le nommage de package, accédez à https - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.it.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.it.xlf index 510a92e862cd..03e82f194e7a 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.it.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.it.xlf @@ -93,6 +93,16 @@ Se si vuole creare un manifesto, usare il flag '--create-manifest-if-needed' con Consente a uno strumento .NET di eseguire il roll forward alle versioni più recenti del runtime .NET se il runtime di destinazione non è installato. + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. Versione del pacchetto dello strumento da installare. @@ -183,8 +193,8 @@ Per altri motivi, inclusa l'aggiunta obbligatoria del prefisso microsoft ai nomi - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ja.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ja.xlf index 4e76e6aa2572..323a3a1bdf8f 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ja.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ja.xlf @@ -93,6 +93,16 @@ If you would like to create a manifest, use the `--create-manifest-if-needed` fl 対象となるランタイムがインストールされていない場合、.NET ツールが新しいバージョンの .NET ランタイムにロールフォワードできるようにします。 + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. インストールするツール パッケージのバージョン。 @@ -183,8 +193,8 @@ For more reasons, including package naming enforcement, visit https://aka.ms/fai - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ko.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ko.xlf index 10da0b6e9481..c223233af5b8 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ko.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ko.xlf @@ -93,6 +93,16 @@ If you would like to create a manifest, use the `--create-manifest-if-needed` fl 대상으로 하는 런타임이 설치되지 않은 경우 .NET 도구가 최신 버전의 .NET 런타임으로 롤포워드하도록 허용합니다. + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. 설치할 도구 패키지 버전입니다. @@ -183,8 +193,8 @@ For more reasons, including package naming enforcement, visit https://aka.ms/fai - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.pl.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.pl.xlf index 4e44031a1e85..5c6e9925252b 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.pl.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.pl.xlf @@ -93,6 +93,16 @@ Jeśli chcesz utworzyć manifest, użyj flagi „--create-manifest-if-needed” Zezwalaj narzędziu środowiska .NET na przekazywanie do nowszych wersji środowiska uruchomieniowego .NET, jeśli docelowe środowiska uruchomieniowe nie są zainstalowane. + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. Wersja pakietu narzędzia do zainstalowania. @@ -183,8 +193,8 @@ Więcej przyczyn, w tym wymuszanie nazw pakietów, można znaleźć na stronie h - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.pt-BR.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.pt-BR.xlf index 9b79e8a3fa0d..091a4e340b07 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.pt-BR.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.pt-BR.xlf @@ -93,6 +93,16 @@ Se você quiser criar um manifesto, use o sinalizador `--create-manifest-if-need Permitir que uma ferramenta .NET seja revertida para versões mais recentes do runtime do .NET se o runtime ao qual ela se destina não estiver instalado. + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. A versão do pacote da ferramenta a ser instalada. @@ -183,8 +193,8 @@ Para ver mais motivos, inclusive a imposição de nome de pacote, visite https:/ - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ru.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ru.xlf index 53a272f52fd4..3fc210f0f2d2 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ru.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.ru.xlf @@ -93,6 +93,16 @@ If you would like to create a manifest, use the `--create-manifest-if-needed` fl Разрешить накат средства .NET до более новых версий среды выполнения .NET, если целевая среда выполнения для средства не установлена. + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. Версия устанавливаемого пакета инструмента. @@ -183,8 +193,8 @@ For more reasons, including package naming enforcement, visit https://aka.ms/fai - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.tr.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.tr.xlf index bd447601850f..2161aafe1499 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.tr.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.tr.xlf @@ -93,6 +93,16 @@ Bir bildirim oluşturmak istiyorsanız, `dotnet tool install` komutuyla birlikte Hedeflediği çalışma zamanı yüklü değilse, bir .NET aracının daha yeni .NET çalışma zamanı sürümlerine ileri alınmasına izin verin. + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. Yüklenecek araç paketinin sürümü. @@ -183,8 +193,8 @@ Paket adlandırma zorlaması dahil diğer nedenler için şu adresi ziyaret edin - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.zh-Hans.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.zh-Hans.xlf index 1b7a901a5d0c..209767bdbe4d 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.zh-Hans.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.zh-Hans.xlf @@ -93,6 +93,16 @@ If you would like to create a manifest, use the `--create-manifest-if-needed` fl 如果未安装所面向的运行时,则允许 .NET 工具向前滚动到较新版本的 .NET 运行时。 + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. 要安装的工具包版本。 @@ -183,8 +193,8 @@ For more reasons, including package naming enforcement, visit https://aka.ms/fai - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.zh-Hant.xlf b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.zh-Hant.xlf index 05465c0310df..063b7450e327 100644 --- a/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.zh-Hant.xlf +++ b/src/Cli/dotnet/commands/dotnet-tool/install/xlf/LocalizableStrings.zh-Hant.xlf @@ -93,6 +93,16 @@ If you would like to create a manifest, use the `--create-manifest-if-needed` fl 如果未安裝 .NET 執行階段目標,則允許 .NET 工具向前復原至較新版本的 .NET 執行階段。 + + Replace all NuGet package sources to use during installation with these. + Replace all NuGet package sources to use during installation with these. + + + + SOURCE + SOURCE + + The version of the tool package to install. 要安裝之工具套件的版本。 @@ -183,8 +193,8 @@ For more reasons, including package naming enforcement, visit https://aka.ms/fai - SOURCE - SOURCE + ADDSOURCE + SOURCE diff --git a/test/Microsoft.DotNet.Tools.Tests.ComponentMocks/ToolPackageDownloaderMock.cs b/test/Microsoft.DotNet.Tools.Tests.ComponentMocks/ToolPackageDownloaderMock.cs index c4c04e0b12bf..5ebf4181403c 100644 --- a/test/Microsoft.DotNet.Tools.Tests.ComponentMocks/ToolPackageDownloaderMock.cs +++ b/test/Microsoft.DotNet.Tools.Tests.ComponentMocks/ToolPackageDownloaderMock.cs @@ -121,7 +121,8 @@ public IToolPackage InstallPackage(PackageLocation packageLocation, PackageId pa packageId.ToString(), versionRange, packageLocation.NugetConfig, - packageLocation.RootConfigDirectory); + packageLocation.RootConfigDirectory, + packageLocation.SourceFeedOverrides); var packageVersion = feedPackage.Version; targetFramework = string.IsNullOrEmpty(targetFramework) ? "targetFramework" : targetFramework; @@ -222,12 +223,17 @@ public MockFeedPackage GetPackage( string packageId, VersionRange versionRange, FilePath? nugetConfig = null, - DirectoryPath? rootConfigDirectory = null) + DirectoryPath? rootConfigDirectory = null, + string[] sourceFeedOverrides = null) { var allPackages = _feeds .Where(feed => { - if (nugetConfig == null) + if (sourceFeedOverrides is not null && sourceFeedOverrides.Length > 0) + { + return sourceFeedOverrides.Contains(feed.Uri); + } + else if (nugetConfig == null) { return SimulateNugetSearchNugetConfigAndMatch( rootConfigDirectory, @@ -318,7 +324,8 @@ public NuGetVersion GetNuGetVersion( packageId.ToString(), versionRange, packageLocation.NugetConfig, - packageLocation.RootConfigDirectory); + packageLocation.RootConfigDirectory, + packageLocation.SourceFeedOverrides); return NuGetVersion.Parse(feedPackage.Version); } diff --git a/test/dotnet.Tests/CommandTests/ToolInstallGlobalOrToolPathCommandTests.cs b/test/dotnet.Tests/CommandTests/ToolInstallGlobalOrToolPathCommandTests.cs index 57b08815600c..1c4ac7418be7 100644 --- a/test/dotnet.Tests/CommandTests/ToolInstallGlobalOrToolPathCommandTests.cs +++ b/test/dotnet.Tests/CommandTests/ToolInstallGlobalOrToolPathCommandTests.cs @@ -116,6 +116,45 @@ public void WhenRunFromToolInstallRedirectCommandWithPackageIdItShouldCreateVali _fileSystem.File.Exists(ExpectedCommandPath()).Should().BeTrue(); } + [Fact] + public void WhenRunWithSourceItShouldFindOnlyTheProvidedSource() + { + const string sourcePath1 = "https://sourceOne.com"; + const string sourcePath2 = "https://sourceTwo.com"; + ParseResult result = Parser.Instance.Parse($"dotnet tool install -g {PackageId} --source {sourcePath1}"); + + var toolPackageDownloader = CreateToolPackageDownloader( + feeds: new List + { + new MockFeed + { + Type = MockFeedType.ImplicitAdditionalFeed, + Uri = sourcePath2, + Packages = new List + { + new MockFeedPackage + { + PackageId = PackageId, + Version = PackageVersion, + ToolCommandName = ToolCommandName, + } + } + } + }); + + var toolInstallGlobalOrToolPathCommand = new ToolInstallGlobalOrToolPathCommand( + result, + _packageId, + (location, forwardArguments) => (_toolPackageStore, _toolPackageStoreQuery, toolPackageDownloader, _toolPackageUninstallerMock), + _createShellShimRepository, + _environmentPathInstructionMock, + _reporter); + + // Should not find the package because it is in the wrong feed + var ex = Assert.Throws(() => toolInstallGlobalOrToolPathCommand.Execute()); + ex.Message.Should().Contain(PackageId); + } + [Fact] public void WhenRunWithPackageIdWithSourceItShouldCreateValidShim() { From d0842edaceb93661ffd1545f50c0728afea3e506 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Thu, 29 Aug 2024 16:20:10 -0700 Subject: [PATCH 093/209] Update stage --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index abff714b4527..9d8281f5c431 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.101", + "dotnet": "8.0.108", "runtimes": { "dotnet": [ "$(VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion)" From 98537e076b11c235c2071cde035630c2f27eaffa Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Thu, 29 Aug 2024 16:21:01 -0700 Subject: [PATCH 094/209] Update stage 0 to fix cppcli tests --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 847214b29c41..c506abd885b6 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.107", + "dotnet": "8.0.108", "runtimes": { "dotnet": [ "$(VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion)" From 0a46192ff4e6c634b2e903d1d9f4a8c7a18ca047 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 03:01:58 +0000 Subject: [PATCH 095/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240829.3 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24428.1 -> To Version 9.0.0-rc.2.24429.3 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates From Version 9.0.0-rc.2.24427.4 -> To Version 9.0.0-rc.2.24429.1 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b27dce760a04..f4ab83f44b1c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,26 +250,26 @@ https://github.com/dotnet/runtime 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/windowsdesktop - 916daab03c2155c6dd827649d88c3f5ad5e2767b + b03ef02ae6a26c4d77054b95b72ddf7e25e2f5f9 - + https://github.com/dotnet/windowsdesktop - 916daab03c2155c6dd827649d88c3f5ad5e2767b + b03ef02ae6a26c4d77054b95b72ddf7e25e2f5f9 - + https://github.com/dotnet/windowsdesktop - 916daab03c2155c6dd827649d88c3f5ad5e2767b + b03ef02ae6a26c4d77054b95b72ddf7e25e2f5f9 - + https://github.com/dotnet/windowsdesktop - 916daab03c2155c6dd827649d88c3f5ad5e2767b + b03ef02ae6a26c4d77054b95b72ddf7e25e2f5f9 - + https://github.com/dotnet/wpf - 06d898c6fe61c847cfa792e83c2254d8aabbeb70 + 4e8309d8659e70818aacdb08fcb66a4677d11894 https://github.com/dotnet/aspnetcore @@ -386,13 +386,13 @@ - + https://github.com/dotnet/winforms - 28b79a28c8fcc016d319ce6b0f3b8c3463192a5c + bcd798bb6b6a76c4c0573ce0f856db06b40fd841 - + https://github.com/dotnet/wpf - 06d898c6fe61c847cfa792e83c2254d8aabbeb70 + 4e8309d8659e70818aacdb08fcb66a4677d11894 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 026c599648e5..97238a6c7684 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -111,7 +111,7 @@ - 9.0.0-rc.2.24427.3 + 9.0.0-rc.2.24428.2 @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24428.1 - 9.0.0-rc.2.24428.1 - 9.0.0-rc.2.24428.1 - 9.0.0-rc.2.24428.1 + 9.0.0-rc.2.24429.3 + 9.0.0-rc.2.24429.3 + 9.0.0-rc.2.24429.3 + 9.0.0-rc.2.24429.3 @@ -268,8 +268,8 @@ - 9.0.0-rc.2.24427.4 - 9.0.0-rc.2.24427.4 + 9.0.0-rc.2.24429.1 + 9.0.0-rc.2.24429.1 From f3752466145d3712b5620199fa52f66f49481a73 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 12:31:04 +0000 Subject: [PATCH 096/209] Update dependencies from https://github.com/dotnet/fsharp build 20240830.1 Microsoft.SourceBuild.Intermediate.fsharp , Microsoft.FSharp.Compiler From Version 9.0.100-beta.24427.4 -> To Version 9.0.100-beta.24430.1 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd795d3d30d5..4ca50ca8174b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -83,14 +83,14 @@ b82694a16d4963b5765e36fdc89d270fa00dde8e - + https://github.com/dotnet/fsharp - a5feb419073e74562fde38768898988334f379a1 + 47b21044223fb274f7e17ebc4d08b2d424eee83b - + https://github.com/dotnet/fsharp - a5feb419073e74562fde38768898988334f379a1 + 47b21044223fb274f7e17ebc4d08b2d424eee83b diff --git a/eng/Versions.props b/eng/Versions.props index 970e2e038655..b28a6fece142 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -231,7 +231,7 @@ - 12.9.100-beta.24427.4 + 12.9.100-beta.24430.1 From db04c3f8d1fd096d259eb0e2ed8f55297212c76c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 12:45:10 +0000 Subject: [PATCH 097/209] Update dependencies from https://github.com/dotnet/templating build 20240830.1 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 8.0.305-servicing.24416.2 -> To Version 8.0.306-servicing.24430.1 --- NuGet.config | 6 +----- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 388dc015bbab..c0a5277f130c 100644 --- a/NuGet.config +++ b/NuGet.config @@ -49,11 +49,7 @@ - - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1dc765f57f7d..c6736570d745 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,17 +1,17 @@ - + https://github.com/dotnet/templating - d882952762582a7dd4631244b8c540f58fa85e6e + a084d1153dfbab413af2f0241a7dd6c79f7269ad - + https://github.com/dotnet/templating - d882952762582a7dd4631244b8c540f58fa85e6e + a084d1153dfbab413af2f0241a7dd6c79f7269ad - + https://github.com/dotnet/templating - d882952762582a7dd4631244b8c540f58fa85e6e + a084d1153dfbab413af2f0241a7dd6c79f7269ad diff --git a/eng/Versions.props b/eng/Versions.props index 5d9f05627291..d071c3523107 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -140,13 +140,13 @@ - 8.0.305 + 8.0.306 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 8.0.305-servicing.24416.2 + 8.0.306-servicing.24430.1 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 7fb622d2deb5884bf9615e523f4cf582328b894d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 12:49:49 +0000 Subject: [PATCH 098/209] Update dependencies from https://github.com/dotnet/templating build 20240830.2 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 8.0.402-servicing.24418.1 -> To Version 8.0.403-servicing.24430.2 --- NuGet.config | 6 +----- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index eeca6df04cec..6c29b9496fae 100644 --- a/NuGet.config +++ b/NuGet.config @@ -50,11 +50,7 @@ - - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 95fe88a6bd16..3e9c99152e98 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,17 +1,17 @@ - + https://github.com/dotnet/templating - 9a6e3e8ad9ff60c347fa70aadcdabdacc06b1feb + 1225e546c90f00dc8d6dbaf815be1beaf8d16152 - + https://github.com/dotnet/templating - 9a6e3e8ad9ff60c347fa70aadcdabdacc06b1feb + 1225e546c90f00dc8d6dbaf815be1beaf8d16152 - + https://github.com/dotnet/templating - 9a6e3e8ad9ff60c347fa70aadcdabdacc06b1feb + 1225e546c90f00dc8d6dbaf815be1beaf8d16152 diff --git a/eng/Versions.props b/eng/Versions.props index 8ab41f6210de..625bf6167993 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -140,13 +140,13 @@ - 8.0.402 + 8.0.403 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 8.0.402-servicing.24418.1 + 8.0.403-servicing.24430.2 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From 851f5aed76825ba4cd1110ca9d2d726794c91a8b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 12:53:43 +0000 Subject: [PATCH 099/209] Update dependencies from https://github.com/dotnet/roslyn build 20240830.2 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.12.0-3.24428.8 -> To Version 4.12.0-3.24430.2 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd795d3d30d5..983255e804ba 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ a5feb419073e74562fde38768898988334f379a1 - + https://github.com/dotnet/roslyn - 14f5b27c7206557c9054ba6ce59cb9c819d5b473 + 28052736b80b4f6b27749fe3d439d7ea3f95164e - + https://github.com/dotnet/roslyn - 14f5b27c7206557c9054ba6ce59cb9c819d5b473 + 28052736b80b4f6b27749fe3d439d7ea3f95164e - + https://github.com/dotnet/roslyn - 14f5b27c7206557c9054ba6ce59cb9c819d5b473 + 28052736b80b4f6b27749fe3d439d7ea3f95164e - + https://github.com/dotnet/roslyn - 14f5b27c7206557c9054ba6ce59cb9c819d5b473 + 28052736b80b4f6b27749fe3d439d7ea3f95164e - + https://github.com/dotnet/roslyn - 14f5b27c7206557c9054ba6ce59cb9c819d5b473 + 28052736b80b4f6b27749fe3d439d7ea3f95164e - + https://github.com/dotnet/roslyn - 14f5b27c7206557c9054ba6ce59cb9c819d5b473 + 28052736b80b4f6b27749fe3d439d7ea3f95164e - + https://github.com/dotnet/roslyn - 14f5b27c7206557c9054ba6ce59cb9c819d5b473 + 28052736b80b4f6b27749fe3d439d7ea3f95164e - + https://github.com/dotnet/roslyn - 14f5b27c7206557c9054ba6ce59cb9c819d5b473 + 28052736b80b4f6b27749fe3d439d7ea3f95164e - + https://github.com/dotnet/roslyn - 14f5b27c7206557c9054ba6ce59cb9c819d5b473 + 28052736b80b4f6b27749fe3d439d7ea3f95164e https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 970e2e038655..f798dd57b9d2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,14 +235,14 @@ - 4.12.0-3.24428.8 - 4.12.0-3.24428.8 - 4.12.0-3.24428.8 - 4.12.0-3.24428.8 - 4.12.0-3.24428.8 - 4.12.0-3.24428.8 - 4.12.0-3.24428.8 - 4.12.0-3.24428.8 + 4.12.0-3.24430.2 + 4.12.0-3.24430.2 + 4.12.0-3.24430.2 + 4.12.0-3.24430.2 + 4.12.0-3.24430.2 + 4.12.0-3.24430.2 + 4.12.0-3.24430.2 + 4.12.0-3.24430.2 From b6bb758d9ca1af401bde5a3bee00cd225eb3b1db Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 12:54:06 +0000 Subject: [PATCH 100/209] Update dependencies from https://github.com/dotnet/msbuild build 20240829.1 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.12.0-preview-24428-06 -> To Version 17.12.0-preview-24429-01 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd795d3d30d5..8851905b9b27 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -69,18 +69,18 @@ 84d642485896a97e0e443be75345c6bb1469a338 - + https://github.com/dotnet/msbuild - b82694a16d4963b5765e36fdc89d270fa00dde8e + 01e53f4161996ce73408117d012f24c2c1737e58 - + https://github.com/dotnet/msbuild - b82694a16d4963b5765e36fdc89d270fa00dde8e + 01e53f4161996ce73408117d012f24c2c1737e58 - + https://github.com/dotnet/msbuild - b82694a16d4963b5765e36fdc89d270fa00dde8e + 01e53f4161996ce73408117d012f24c2c1737e58 diff --git a/eng/Versions.props b/eng/Versions.props index 970e2e038655..d5b386e51355 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -212,8 +212,8 @@ then use that in Directory.Packages.props. At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. --> - 17.12.0-preview-24428-06 - 17.12.0-preview-24428-06 + 17.12.0-preview-24429-01 + 17.12.0-preview-24429-01 $([System.IO.File]::ReadAllText('$(RepoRoot)src\Layout\redist\minimumMSBuildVersion').Trim()) From bcc32df32fe67bf580b774d8b1b020c065da7ec2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 12:55:17 +0000 Subject: [PATCH 101/209] Update dependencies from https://github.com/dotnet/sourcelink build 20240829.2 Microsoft.SourceBuild.Intermediate.sourcelink , Microsoft.Build.Tasks.Git , Microsoft.SourceLink.AzureRepos.Git , Microsoft.SourceLink.Bitbucket.Git , Microsoft.SourceLink.Common , Microsoft.SourceLink.GitHub , Microsoft.SourceLink.GitLab From Version 9.0.0-beta.24428.1 -> To Version 9.0.0-beta.24429.2 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd795d3d30d5..828e38fc4684 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -456,34 +456,34 @@ https://github.com/dotnet/deployment-tools 7871ee378dce87b64d930d4f33dca9c888f4034d - + https://github.com/dotnet/sourcelink - 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 + 303af3b605542acb8dd111f7a01ce4deaedd34df - + https://github.com/dotnet/sourcelink - 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 + 303af3b605542acb8dd111f7a01ce4deaedd34df - + https://github.com/dotnet/sourcelink - 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 + 303af3b605542acb8dd111f7a01ce4deaedd34df - + https://github.com/dotnet/sourcelink - 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 + 303af3b605542acb8dd111f7a01ce4deaedd34df - + https://github.com/dotnet/sourcelink - 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 + 303af3b605542acb8dd111f7a01ce4deaedd34df - + https://github.com/dotnet/sourcelink - 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 + 303af3b605542acb8dd111f7a01ce4deaedd34df - + https://github.com/dotnet/sourcelink - 9b94576f3e56ee55c818ff611065c8acb3fdf2e2 + 303af3b605542acb8dd111f7a01ce4deaedd34df diff --git a/eng/Versions.props b/eng/Versions.props index 970e2e038655..4a1770317a2a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -320,12 +320,12 @@ - 9.0.0-beta.24428.1 - 9.0.0-beta.24428.1 - 9.0.0-beta.24428.1 - 9.0.0-beta.24428.1 - 9.0.0-beta.24428.1 - 9.0.0-beta.24428.1 + 9.0.0-beta.24429.2 + 9.0.0-beta.24429.2 + 9.0.0-beta.24429.2 + 9.0.0-beta.24429.2 + 9.0.0-beta.24429.2 + 9.0.0-beta.24429.2 From 8ec158ab4c05c594b35e018de3ef9ef968197a3e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 12:57:27 +0000 Subject: [PATCH 102/209] Update dependencies from https://github.com/dotnet/runtime build 20240829.19 Microsoft.Bcl.AsyncInterfaces , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.SystemEvents , System.CodeDom , System.Composition.AttributedModel , System.Composition.Convention , System.Composition.Hosting , System.Composition.Runtime , System.Composition.TypedParts , System.Configuration.ConfigurationManager , System.Formats.Asn1 , 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 , VS.Redist.Common.NetCore.SharedFramework.x64.9.0 , VS.Redist.Common.NetCore.TargetingPack.x64.9.0 , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.0-rc.2.24428.8 -> To Version 9.0.0-rc.2.24429.19 --- eng/Version.Details.xml | 140 ++++++++++++++++++++-------------------- eng/Versions.props | 68 +++++++++---------- 2 files changed, 104 insertions(+), 104 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd795d3d30d5..03f279ab4af9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,42 +15,42 @@ 133c2a92258a1d4047eb077e39aa82b445dd57f5 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 @@ -226,29 +226,29 @@ 54964cdbcd254cbce066d3a2afa2b3908db51abd - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 https://github.com/dotnet/windowsdesktop @@ -499,89 +499,89 @@ - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 https://github.com/dotnet/aspnetcore 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 @@ -615,9 +615,9 @@ e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 - + https://github.com/dotnet/runtime - 0a5cccb57942c0493ef680f559f69866f3b1eb7d + d0f3235d312f7cf9683012b3fe96b2c6f20a1743 https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index 970e2e038655..42d0b91c2270 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,47 +122,47 @@ - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 8.0.0-rc.1.23414.4 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 2.1.0 - 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24429.19 8.0.0 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 8.0.0 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 8.0.4 - 9.0.0-rc.2.24428.8 - 9.0.0-rc.2.24428.8 + 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24429.19 From 413935bb3e706f42b4c9bf4e917a74b0ac69868e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 13:01:51 +0000 Subject: [PATCH 103/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240830.1 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24429.3 -> To Version 9.0.0-rc.2.24430.1 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates From Version 9.0.0-rc.2.24429.1 -> To Version 9.0.0-rc.2.24429.4 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd795d3d30d5..5e58345ff8cf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,26 +250,26 @@ https://github.com/dotnet/runtime 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/windowsdesktop - b03ef02ae6a26c4d77054b95b72ddf7e25e2f5f9 + 392ca81c93cf0a010510298cee0058ec225ca49d - + https://github.com/dotnet/windowsdesktop - b03ef02ae6a26c4d77054b95b72ddf7e25e2f5f9 + 392ca81c93cf0a010510298cee0058ec225ca49d - + https://github.com/dotnet/windowsdesktop - b03ef02ae6a26c4d77054b95b72ddf7e25e2f5f9 + 392ca81c93cf0a010510298cee0058ec225ca49d - + https://github.com/dotnet/windowsdesktop - b03ef02ae6a26c4d77054b95b72ddf7e25e2f5f9 + 392ca81c93cf0a010510298cee0058ec225ca49d - + https://github.com/dotnet/wpf - 4e8309d8659e70818aacdb08fcb66a4677d11894 + fe1f47c721fc9da38a2e9a10a1a7731753d1a7c6 https://github.com/dotnet/aspnetcore @@ -386,13 +386,13 @@ - + https://github.com/dotnet/winforms - bcd798bb6b6a76c4c0573ce0f856db06b40fd841 + 4b62a73f89858102f5da2fd28debf5d20fd25a9d - + https://github.com/dotnet/wpf - 4e8309d8659e70818aacdb08fcb66a4677d11894 + fe1f47c721fc9da38a2e9a10a1a7731753d1a7c6 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 970e2e038655..a4e8a4f0d782 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -111,7 +111,7 @@ - 9.0.0-rc.2.24428.2 + 9.0.0-rc.2.24429.3 @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24429.3 - 9.0.0-rc.2.24429.3 - 9.0.0-rc.2.24429.3 - 9.0.0-rc.2.24429.3 + 9.0.0-rc.2.24430.1 + 9.0.0-rc.2.24430.1 + 9.0.0-rc.2.24430.1 + 9.0.0-rc.2.24430.1 @@ -268,8 +268,8 @@ - 9.0.0-rc.2.24429.1 - 9.0.0-rc.2.24429.1 + 9.0.0-rc.2.24429.4 + 9.0.0-rc.2.24429.4 From 67b2b4b1f8274ee53032f74b7304cc934d4e643c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 13:05:45 +0000 Subject: [PATCH 104/209] Update dependencies from https://github.com/dotnet/arcade build 20240829.3 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24426.3 -> To Version 9.0.0-beta.24429.3 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 8 ++++---- global.json | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd795d3d30d5..c3fa1f0579cd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -585,34 +585,34 @@ - + https://github.com/dotnet/arcade - e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 + b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 - + https://github.com/dotnet/arcade - e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 + b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 - + https://github.com/dotnet/arcade - e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 + b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 - + https://github.com/dotnet/arcade - e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 + b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 - + https://github.com/dotnet/arcade - e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 + b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 - + https://github.com/dotnet/arcade - e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 + b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 - + https://github.com/dotnet/arcade - e3bdd9a0f2a65fe037ba1adb2261eea48a840fa4 + b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 diff --git a/eng/Versions.props b/eng/Versions.props index 970e2e038655..19de15713ff4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -313,10 +313,10 @@ - 9.0.0-beta.24426.3 - 9.0.0-beta.24426.3 - 9.0.0-beta.24426.3 - 9.0.0-beta.24426.3 + 9.0.0-beta.24429.3 + 9.0.0-beta.24429.3 + 9.0.0-beta.24429.3 + 9.0.0-beta.24429.3 diff --git a/global.json b/global.json index 368bb2b1d0b8..39aac0d04498 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24426.3", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24426.3", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24429.3", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24429.3", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From 664f72766882d40e89680a3183a8357e206c8b1b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 14:02:47 +0000 Subject: [PATCH 105/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240830.3 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24430.1 -> To Version 9.0.0-rc.2.24430.3 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5e58345ff8cf..858c6bc17cae 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,22 +250,22 @@ https://github.com/dotnet/runtime 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/windowsdesktop - 392ca81c93cf0a010510298cee0058ec225ca49d + 1c701f46406786fb42e85d245117d6f743af7abe - + https://github.com/dotnet/windowsdesktop - 392ca81c93cf0a010510298cee0058ec225ca49d + 1c701f46406786fb42e85d245117d6f743af7abe - + https://github.com/dotnet/windowsdesktop - 392ca81c93cf0a010510298cee0058ec225ca49d + 1c701f46406786fb42e85d245117d6f743af7abe - + https://github.com/dotnet/windowsdesktop - 392ca81c93cf0a010510298cee0058ec225ca49d + 1c701f46406786fb42e85d245117d6f743af7abe https://github.com/dotnet/wpf diff --git a/eng/Versions.props b/eng/Versions.props index a4e8a4f0d782..540a26dfa5ba 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24430.1 - 9.0.0-rc.2.24430.1 - 9.0.0-rc.2.24430.1 - 9.0.0-rc.2.24430.1 + 9.0.0-rc.2.24430.3 + 9.0.0-rc.2.24430.3 + 9.0.0-rc.2.24430.3 + 9.0.0-rc.2.24430.3 From 5a8f27f121d9757494182addbef8347c78ccb877 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 14:18:52 +0000 Subject: [PATCH 106/209] Update dependencies from https://github.com/dotnet/test-templates build 20240830.1 Microsoft.SourceBuild.Intermediate.test-templates , Microsoft.DotNet.Test.ProjectTemplates.9.0 From Version 1.1.0-rc.24429.1 -> To Version 1.1.0-rc.24430.1 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd795d3d30d5..665dc68a0772 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -375,14 +375,14 @@ https://github.com/dotnet/test-templates 49c9ad01f057b3c6352bbec12b117acc2224493c - + https://github.com/dotnet/test-templates - f0bd96ccdcc784f6f013fa0fef8f36381a230735 + 822a3d125cbe841875701073cc7dd450478bfd22 - + https://github.com/dotnet/test-templates - f0bd96ccdcc784f6f013fa0fef8f36381a230735 + 822a3d125cbe841875701073cc7dd450478bfd22 diff --git a/eng/Versions.props b/eng/Versions.props index 970e2e038655..83ce6b6178e8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -118,7 +118,7 @@ 1.1.0-rc.24069.1 1.1.0-rc.24202.1 - 1.1.0-rc.24429.1 + 1.1.0-rc.24430.1 From 7637fadee4439f3bf32f1948530268efa8611f22 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 21:18:41 +0000 Subject: [PATCH 107/209] Update dependencies from https://github.com/dotnet/aspnetcore build 20240830.8 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 9.0.0-rc.2.24426.2 -> To Version 9.0.0-rc.2.24430.8 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd795d3d30d5..7285e7f94a52 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -131,13 +131,13 @@ https://github.com/dotnet/roslyn 14f5b27c7206557c9054ba6ce59cb9c819d5b473 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 https://github.com/nuget/nuget.client @@ -271,54 +271,54 @@ https://github.com/dotnet/wpf 4e8309d8659e70818aacdb08fcb66a4677d11894 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 @@ -339,21 +339,21 @@ 1f45c70f4f631c06db78bd0fdb450b9a8ab7d039 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 https://github.com/dotnet/test-templates @@ -535,9 +535,9 @@ https://github.com/dotnet/runtime 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/aspnetcore - 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 + 2b865e33f2c7c9484c28a3b62e8ff07966e23434 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 970e2e038655..df26ce702fe4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -246,19 +246,19 @@ - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 - 9.0.0-rc.2.24426.2 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24430.8 From 9a12d8c3b662b4e76c44bc4f3144b2df22702182 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Fri, 30 Aug 2024 14:29:53 -0700 Subject: [PATCH 108/209] We're currently copying the test assets to the publish dirctory for every single test project which is duplicating a lot of files in our PR builds. This is also leading to some .tmp file missing copy issues from the parallel builds I'm not sure why these files are specifically included so let's try removing them and see what fails. --- test/Directory.Build.targets | 7 ------- 1 file changed, 7 deletions(-) diff --git a/test/Directory.Build.targets b/test/Directory.Build.targets index 3d82156be48d..b64110c68ad6 100644 --- a/test/Directory.Build.targets +++ b/test/Directory.Build.targets @@ -24,13 +24,6 @@ - - - - - - $(ArtifactsTmpDir)$(ToolCommandName)\ From 4282f755b534bf659998e6fc85162b5280e0c545 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Fri, 30 Aug 2024 16:11:15 -0700 Subject: [PATCH 109/209] Add Dev Device ID --- src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs | 105 ++++++++++++++++++ .../Telemetry/TelemetryCommonProperties.cs | 5 + .../TelemetryCommonPropertiesTests.cs | 16 +++ 3 files changed, 126 insertions(+) create mode 100644 src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs diff --git a/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs b/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs new file mode 100644 index 000000000000..f4bff2b59fee --- /dev/null +++ b/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs @@ -0,0 +1,105 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Win32; + +namespace Microsoft.DotNet.Cli.Telemetry +{ + internal static class DeviceIdGetter + { + public static string GetDeviceId() + { + string deviceId = GetCachedDeviceId(); + + // Check if the device Id is already cached + if (string.IsNullOrEmpty(deviceId)) + { + // Generate a new guid + deviceId = Guid.NewGuid().ToString("D").ToLowerInvariant(); + + // Cache the new device Id + CacheDeviceId(deviceId); + } + + return deviceId; + } + + private static string GetCachedDeviceId() + { + string deviceId = null; + + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + // Get device Id from Windows registry + using (var key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\DeveloperTools")) + { + deviceId = key?.GetValue("deviceid") as string; + } + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + { + // Get device Id from Linux cache file + string cacheFilePath; + string xdgCacheHome = Environment.GetEnvironmentVariable("XDG_CACHE_HOME"); + if (!string.IsNullOrEmpty(xdgCacheHome)) + { + cacheFilePath = Path.Combine(xdgCacheHome, "Microsoft", "DeveloperTools", "deviceid"); + } + else + { + cacheFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".cache", "deviceid"); + } + + if (File.Exists(cacheFilePath)) + { + deviceId = File.ReadAllText(cacheFilePath); + } + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + // Get device Id from macOS cache file + string cacheFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library", "Application Support", "Microsoft", "DeveloperTools", "deviceid"); + if (File.Exists(cacheFilePath)) + { + deviceId = File.ReadAllText(cacheFilePath); + } + } + + return deviceId; + } + + private static void CacheDeviceId(string deviceId) + { + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + // Cache device Id in Windows registry + using (var key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\DeveloperTools")) + { + key.SetValue("deviceid", deviceId); + } + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + { + // Cache device Id in Linux cache file + string cacheFilePath; + string xdgCacheHome = Environment.GetEnvironmentVariable("XDG_CACHE_HOME"); + if (!string.IsNullOrEmpty(xdgCacheHome)) + { + cacheFilePath = Path.Combine(xdgCacheHome, "Microsoft", "DeveloperTools", "deviceId"); + } + else + { + cacheFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".cache", "deviceid"); + } + + File.WriteAllText(cacheFilePath, deviceId); + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + // Cache device Id in macOS cache file + string cacheFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library", "Application Support", "Microsoft", "DeveloperTools", "deviceid"); + File.WriteAllText(cacheFilePath, deviceId); + } + } + } +} diff --git a/src/Cli/dotnet/Telemetry/TelemetryCommonProperties.cs b/src/Cli/dotnet/Telemetry/TelemetryCommonProperties.cs index eed36f6149ad..b9081c498869 100644 --- a/src/Cli/dotnet/Telemetry/TelemetryCommonProperties.cs +++ b/src/Cli/dotnet/Telemetry/TelemetryCommonProperties.cs @@ -14,6 +14,7 @@ public TelemetryCommonProperties( Func getCurrentDirectory = null, Func hasher = null, Func getMACAddress = null, + Func getDeviceId = null, IDockerContainerDetector dockerContainerDetector = null, IUserLevelCacheWriter userLevelCacheWriter = null, ICIEnvironmentDetector ciEnvironmentDetector = null) @@ -21,6 +22,7 @@ public TelemetryCommonProperties( _getCurrentDirectory = getCurrentDirectory ?? Directory.GetCurrentDirectory; _hasher = hasher ?? Sha256Hasher.Hash; _getMACAddress = getMACAddress ?? MacAddressGetter.GetMacAddress; + _getDeviceId = getDeviceId ?? DeviceIdGetter.GetDeviceId; _dockerContainerDetector = dockerContainerDetector ?? new DockerContainerDetectorForTelemetry(); _userLevelCacheWriter = userLevelCacheWriter ?? new UserLevelCacheWriter(); _ciEnvironmentDetector = ciEnvironmentDetector ?? new CIEnvironmentDetectorForTelemetry(); @@ -31,6 +33,7 @@ public TelemetryCommonProperties( private Func _getCurrentDirectory; private Func _hasher; private Func _getMACAddress; + private Func _getDeviceId; private IUserLevelCacheWriter _userLevelCacheWriter; private const string OSVersion = "OS Version"; private const string OSPlatform = "OS Platform"; @@ -40,6 +43,7 @@ public TelemetryCommonProperties( private const string ProductVersion = "Product Version"; private const string TelemetryProfile = "Telemetry Profile"; private const string CurrentPathHash = "Current Path Hash"; + private const string DeviceId = "DeviceId"; private const string MachineId = "Machine ID"; private const string MachineIdOld = "Machine ID Old"; private const string DockerContainer = "Docker Container"; @@ -81,6 +85,7 @@ public Dictionary GetTelemetryCommonProperties() CliFolderPathCalculator.DotnetUserProfileFolderPath, $"{MachineIdCacheKey}.v1.dotnetUserLevelCache"), GetMachineId)}, + {DeviceId, _getDeviceId()}, {KernelVersion, GetKernelVersion()}, {InstallationType, ExternalTelemetryProperties.GetInstallationType()}, {ProductType, ExternalTelemetryProperties.GetProductType()}, diff --git a/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs b/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs index 62f9611d33ac..00ae49f2d625 100644 --- a/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs +++ b/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs @@ -33,6 +33,13 @@ public void TelemetryCommonPropertiesShouldReturnHashedMachineId() unitUnderTest.GetTelemetryCommonProperties()["Machine ID"].Should().NotBe("plaintext"); } + [Fact] + public void TelemetryCommonPropertiesShouldReturnDevDeviceId() + { + var unitUnderTest = new TelemetryCommonProperties(getDeviceId: () => "plaintext", userLevelCacheWriter: new NothingCache()); + unitUnderTest.GetTelemetryCommonProperties()["DevDeviceId"].Should().Be("plaintext"); + } + [Fact] public void TelemetryCommonPropertiesShouldReturnNewGuidWhenCannotGetMacAddress() { @@ -42,6 +49,15 @@ public void TelemetryCommonPropertiesShouldReturnNewGuidWhenCannotGetMacAddress( Guid.TryParse(assignedMachineId, out var _).Should().BeTrue("it should be a guid"); } + [Fact] + public void TelemetryCommonPropertiesShouldReturnNewGuidWhenCannotDevDeviceId() + { + var unitUnderTest = new TelemetryCommonProperties(getDeviceId: () => null, userLevelCacheWriter: new NothingCache()); + var assignedMachineId = unitUnderTest.GetTelemetryCommonProperties()["DevDeviceId"]; + + Guid.TryParse(assignedMachineId, out var _).Should().BeTrue("it should be a guid"); + } + [Fact] public void TelemetryCommonPropertiesShouldReturnHashedMachineIdOld() { From c75cd6147f42333dafdcb06bfd5daafe12c3689d Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Fri, 30 Aug 2024 16:34:15 -0700 Subject: [PATCH 110/209] Set testpackaegs in the textcontext fallback path --- build/RunTestsOnHelix.sh | 1 + test/Microsoft.NET.TestFramework/TestContext.cs | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/build/RunTestsOnHelix.sh b/build/RunTestsOnHelix.sh index 5c2493a9a6f1..9474b2fcf119 100644 --- a/build/RunTestsOnHelix.sh +++ b/build/RunTestsOnHelix.sh @@ -24,6 +24,7 @@ dotnet new --debug:ephemeral-hive # We downloaded a special zip of files to the .nuget folder so add that as a source dotnet nuget list source --configfile $TestExecutionDirectory/NuGet.config dotnet nuget add source $DOTNET_ROOT/.nuget --configfile $TestExecutionDirectory/NuGet.config +dotnet nuget add source $TestExecutionDirectory/Testpackages --configfile $TestExecutionDirectory/NuGet.config #Remove feeds not needed for tests dotnet nuget remove source dotnet6-transport --configfile $TestExecutionDirectory/NuGet.config dotnet nuget remove source dotnet6-internal-transport --configfile $TestExecutionDirectory/NuGet.config diff --git a/test/Microsoft.NET.TestFramework/TestContext.cs b/test/Microsoft.NET.TestFramework/TestContext.cs index 690b7767d1a8..1aed029fa612 100644 --- a/test/Microsoft.NET.TestFramework/TestContext.cs +++ b/test/Microsoft.NET.TestFramework/TestContext.cs @@ -198,6 +198,12 @@ public static void Initialize(TestCommandLine commandLine) testContext.NuGetFallbackFolder = Path.Combine(nugetFolder, "NuGetFallbackFolder"); testContext.NuGetExePath = Path.Combine(nugetFolder, $"nuget{Constants.ExeSuffix}"); testContext.NuGetCachePath = Path.Combine(nugetFolder, "packages"); + + var testPackages = Path.Combine(testContext.TestExecutionDirectory, "Testpackages"); + if (Directory.Exists(testPackages)) + { + testContext.TestPackages = testPackages; + } } if (commandLine.SdkVersion != null) From 4849f8b1223cc6703a92b16a0401c1f60f6e6525 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 30 Aug 2024 23:36:53 +0000 Subject: [PATCH 111/209] Update dependencies from https://github.com/dotnet/razor build 20240830.1 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24429.1 -> To Version 9.0.0-preview.24430.1 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bd795d3d30d5..1bbbd4ffd7c7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 - + https://github.com/dotnet/razor - 1f45c70f4f631c06db78bd0fdb450b9a8ab7d039 + a657d5cf797e8bb4dfc1487edb7312bb17c3019b - + https://github.com/dotnet/razor - 1f45c70f4f631c06db78bd0fdb450b9a8ab7d039 + a657d5cf797e8bb4dfc1487edb7312bb17c3019b - + https://github.com/dotnet/razor - 1f45c70f4f631c06db78bd0fdb450b9a8ab7d039 + a657d5cf797e8bb4dfc1487edb7312bb17c3019b - + https://github.com/dotnet/razor - 1f45c70f4f631c06db78bd0fdb450b9a8ab7d039 + a657d5cf797e8bb4dfc1487edb7312bb17c3019b diff --git a/eng/Versions.props b/eng/Versions.props index 970e2e038655..79a2e3e5d2dd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24429.1 - 9.0.0-preview.24429.1 - 9.0.0-preview.24429.1 + 9.0.0-preview.24430.1 + 9.0.0-preview.24430.1 + 9.0.0-preview.24430.1 From b8b1baf5cbe0270ddad6256698212689b4eea49d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 31 Aug 2024 01:04:01 +0000 Subject: [PATCH 112/209] Update dependencies from https://github.com/dotnet/razor build 20240830.2 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24430.1 -> To Version 9.0.0-preview.24430.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1bbbd4ffd7c7..daf79996549d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 9f52b5ccf32f2171881ac6419851bac9cc0f34e4 - + https://github.com/dotnet/razor - a657d5cf797e8bb4dfc1487edb7312bb17c3019b + f01a5a8f30ca7257cf7be500c3fceca01eaaceab - + https://github.com/dotnet/razor - a657d5cf797e8bb4dfc1487edb7312bb17c3019b + f01a5a8f30ca7257cf7be500c3fceca01eaaceab - + https://github.com/dotnet/razor - a657d5cf797e8bb4dfc1487edb7312bb17c3019b + f01a5a8f30ca7257cf7be500c3fceca01eaaceab - + https://github.com/dotnet/razor - a657d5cf797e8bb4dfc1487edb7312bb17c3019b + f01a5a8f30ca7257cf7be500c3fceca01eaaceab diff --git a/eng/Versions.props b/eng/Versions.props index 79a2e3e5d2dd..253cc3917f58 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24430.1 - 9.0.0-preview.24430.1 - 9.0.0-preview.24430.1 + 9.0.0-preview.24430.2 + 9.0.0-preview.24430.2 + 9.0.0-preview.24430.2 From 8016bcb254e3c188d812f2c4d67a7dae2d5a86fa Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Tue, 27 Aug 2024 10:28:34 -0700 Subject: [PATCH 113/209] Emit warning for Windows.UI.Xaml profile --- src/Tasks/Common/Resources/Strings.resx | 6 +++++- src/Tasks/Common/Resources/xlf/Strings.cs.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.de.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.es.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.fr.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.it.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.ja.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.ko.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.pl.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.ru.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.tr.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf | 5 +++++ src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf | 5 +++++ .../targets/Microsoft.NET.Windows.targets | 8 ++++++++ 15 files changed, 78 insertions(+), 1 deletion(-) diff --git a/src/Tasks/Common/Resources/Strings.resx b/src/Tasks/Common/Resources/Strings.resx index 11f6f931f15e..18ac6a02f10e 100644 --- a/src/Tasks/Common/Resources/Strings.resx +++ b/src/Tasks/Common/Resources/Strings.resx @@ -948,5 +948,9 @@ You may need to build the project on another operating system or architecture, o NETSDK1213: Targeting .NET 8.0 or higher in Visual Studio 2022 17.7 is not supported. {StrBegin="NETSDK1213: "} - + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + + diff --git a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf index b2b7abf5bc73..b6cbd4e7f137 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: Používáte verzi Preview rozhraní .NET. Viz: https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: Vytvoření spravované komponenty Metadata Windows s WinMDExp se při cílení na {0} nepodporuje. diff --git a/src/Tasks/Common/Resources/xlf/Strings.de.xlf b/src/Tasks/Common/Resources/xlf/Strings.de.xlf index 0cd42ed3e43e..0e39f7c94efb 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.de.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.de.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: Sie verwenden eine Vorschauversion von .NET. Weitere Informationen: https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: Das Erstellen einer verwalteten Windows-Metadatenkomponente mit WinMDExp wird mit dem Ziel "{0}" nicht unterstützt. diff --git a/src/Tasks/Common/Resources/xlf/Strings.es.xlf b/src/Tasks/Common/Resources/xlf/Strings.es.xlf index bfeab68a8dda..8844bfe9577d 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.es.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.es.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: Está usando una versión preliminar de .NET. Visite: https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: No se admite la generación de un componente administrado de metadatos de Windows con WinMDExp cuando el destino es {0}. diff --git a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf index 2de5cc245961..b833209dcba5 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: vous utilisez une version d'aperçu de .NET. Voir : https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: la production d'un composant de métadonnées Windows managé avec WinMDExp n'est pas prise en charge pour le ciblage de {0}. diff --git a/src/Tasks/Common/Resources/xlf/Strings.it.xlf b/src/Tasks/Common/Resources/xlf/Strings.it.xlf index 86e1d2d8342f..9ad5cea4bc77 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.it.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.it.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: si sta usando una versione in anteprima di .NET. Vedere https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: la produzione di un componente Metadati Windows gestito con WinMDExp non è supportata quando la destinazione è {0}. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf index 58d017d5ca72..6c89d8534a33 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: プレビュー版の .NET を使用しています。https://aka.ms/dotnet-support-policy をご覧ください {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: {0} をターゲットにする場合、WinMDExp を使用したマネージド Windows メタデータ コンポーネント生成はサポートされていません。 diff --git a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf index d9541edcbcf9..0e4d108aed4e 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: .NET의 미리 보기 버전을 사용하고 있습니다. 참조: https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: {0}을(를) 대상으로 지정하는 경우 WinMDExp로 관리형 Windows 메타데이터 구성 요소를 생성하는 것은 지원되지 않습니다. diff --git a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf index d24efca06c11..04129707b440 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: Korzystasz z wersji zapoznawczej platformy .NET. Zobacz: ttps://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: Generowanie zarządzanego składnika metadanych systemu Windows za pomocą narzędzia WinMDExp nie jest obsługiwane, gdy używany jest element docelowy {0}. diff --git a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf index 9f0cd6842b73..5ea482e6346c 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: Você está usando uma versão de visualização do .NET. Veja: https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: não há suporte para a produção de um componente de Metadados do Windows gerenciado com o WinMDExp ao direcionar ao {0}. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf index 561e733e1634..73a76383294f 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: Вы используете предварительную версию .NET. Дополнительные сведения см. на странице https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: создание управляемого компонента метаданных Windows с WinMDExp не поддерживается при нацеливании на {0}. diff --git a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf index 08d35b0d704b..1ef15bddef1b 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: Bir .NET önizleme sürümü kullanıyorsunuz. Bkz. https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: {0} hedeflenirken, WinMDExp ile yönetilen bir Windows Meta Veri bileşeninin üretilmesi desteklenmiyor. diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf index 5dd16b79df86..77535e6971a8 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: 你正在使用 .NET 的预览版。请参阅 https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: 当目标为 {0} 时,不支持使用 WinMDExp 生成托管 Windows 元数据组件。 diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf index 72dfb5bfac80..afa415b9364d 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf @@ -1003,6 +1003,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1057: 您目前使用的是 .NET 預覽版。請參閱: https://aka.ms/dotnet-support-policy {StrBegin="NETSDK1057: "} + + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + NETSDK1214: UseUwp and all associated functionality require the .NET 9 SDK and are not supported by older .NET SDKs. + {StrBegin="NETSDK1214: "} + NETSDK1131: Producing a managed Windows Metadata component with WinMDExp is not supported when targeting {0}. NETSDK1131: 當目標為 {0} 時,無法使用 WinMDExp 產生受控 Windows 中繼資料元件。 diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets index 97cf7699cfb4..bee1e23bb8a8 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Windows.targets @@ -102,4 +102,12 @@ Copyright (c) .NET Foundation. All rights reserved. + + + + + From e748b855944e35f088cbc685ec040638966ea140 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 31 Aug 2024 03:07:50 +0000 Subject: [PATCH 114/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240830.7 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24430.3 -> To Version 9.0.0-rc.2.24430.7 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.DotNet.Wpf.ProjectTemplates From Version 9.0.0-rc.2.24429.4 -> To Version 9.0.0-rc.2.24430.4 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 12 ++++++------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 858c6bc17cae..43ee26c830fc 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,26 +250,26 @@ https://github.com/dotnet/runtime 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/windowsdesktop - 1c701f46406786fb42e85d245117d6f743af7abe + 1fe5b68ba1747d3f19b09a5d796103eb7c317c31 - + https://github.com/dotnet/windowsdesktop - 1c701f46406786fb42e85d245117d6f743af7abe + 1fe5b68ba1747d3f19b09a5d796103eb7c317c31 - + https://github.com/dotnet/windowsdesktop - 1c701f46406786fb42e85d245117d6f743af7abe + 1fe5b68ba1747d3f19b09a5d796103eb7c317c31 - + https://github.com/dotnet/windowsdesktop - 1c701f46406786fb42e85d245117d6f743af7abe + 1fe5b68ba1747d3f19b09a5d796103eb7c317c31 - + https://github.com/dotnet/wpf - fe1f47c721fc9da38a2e9a10a1a7731753d1a7c6 + c91615621e61e078854dab8c52fdae083fbd9fe9 https://github.com/dotnet/aspnetcore @@ -390,9 +390,9 @@ https://github.com/dotnet/winforms 4b62a73f89858102f5da2fd28debf5d20fd25a9d - + https://github.com/dotnet/wpf - fe1f47c721fc9da38a2e9a10a1a7731753d1a7c6 + c91615621e61e078854dab8c52fdae083fbd9fe9 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 540a26dfa5ba..12ab95eb704b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24430.3 - 9.0.0-rc.2.24430.3 - 9.0.0-rc.2.24430.3 - 9.0.0-rc.2.24430.3 + 9.0.0-rc.2.24430.7 + 9.0.0-rc.2.24430.7 + 9.0.0-rc.2.24430.7 + 9.0.0-rc.2.24430.7 @@ -268,8 +268,8 @@ - 9.0.0-rc.2.24429.4 - 9.0.0-rc.2.24429.4 + 9.0.0-rc.2.24430.4 + 9.0.0-rc.2.24430.4 From 6cdd1d10b0036786acb595a0155e298d0aeedd56 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 31 Aug 2024 12:49:29 +0000 Subject: [PATCH 115/209] Update dependencies from https://github.com/dotnet/roslyn build 20240830.8 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.12.0-3.24430.2 -> To Version 4.12.0-3.24430.8 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 983255e804ba..994ca2f1c6ed 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ a5feb419073e74562fde38768898988334f379a1 - + https://github.com/dotnet/roslyn - 28052736b80b4f6b27749fe3d439d7ea3f95164e + 5cba0ce666766b1db7cd75009575c7e12c4be72c - + https://github.com/dotnet/roslyn - 28052736b80b4f6b27749fe3d439d7ea3f95164e + 5cba0ce666766b1db7cd75009575c7e12c4be72c - + https://github.com/dotnet/roslyn - 28052736b80b4f6b27749fe3d439d7ea3f95164e + 5cba0ce666766b1db7cd75009575c7e12c4be72c - + https://github.com/dotnet/roslyn - 28052736b80b4f6b27749fe3d439d7ea3f95164e + 5cba0ce666766b1db7cd75009575c7e12c4be72c - + https://github.com/dotnet/roslyn - 28052736b80b4f6b27749fe3d439d7ea3f95164e + 5cba0ce666766b1db7cd75009575c7e12c4be72c - + https://github.com/dotnet/roslyn - 28052736b80b4f6b27749fe3d439d7ea3f95164e + 5cba0ce666766b1db7cd75009575c7e12c4be72c - + https://github.com/dotnet/roslyn - 28052736b80b4f6b27749fe3d439d7ea3f95164e + 5cba0ce666766b1db7cd75009575c7e12c4be72c - + https://github.com/dotnet/roslyn - 28052736b80b4f6b27749fe3d439d7ea3f95164e + 5cba0ce666766b1db7cd75009575c7e12c4be72c - + https://github.com/dotnet/roslyn - 28052736b80b4f6b27749fe3d439d7ea3f95164e + 5cba0ce666766b1db7cd75009575c7e12c4be72c https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index f798dd57b9d2..41a4754ae7a0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,14 +235,14 @@ - 4.12.0-3.24430.2 - 4.12.0-3.24430.2 - 4.12.0-3.24430.2 - 4.12.0-3.24430.2 - 4.12.0-3.24430.2 - 4.12.0-3.24430.2 - 4.12.0-3.24430.2 - 4.12.0-3.24430.2 + 4.12.0-3.24430.8 + 4.12.0-3.24430.8 + 4.12.0-3.24430.8 + 4.12.0-3.24430.8 + 4.12.0-3.24430.8 + 4.12.0-3.24430.8 + 4.12.0-3.24430.8 + 4.12.0-3.24430.8 From b3e6d8063063701fedf0eead2e3e8131a252ccbc Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 31 Aug 2024 12:55:38 +0000 Subject: [PATCH 116/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240831.1 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24430.7 -> To Version 9.0.0-rc.2.24431.1 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates From Version 9.0.0-rc.2.24430.4 -> To Version 9.0.0-rc.2.24430.9 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 43ee26c830fc..f70396f5a695 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,26 +250,26 @@ https://github.com/dotnet/runtime 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/windowsdesktop - 1fe5b68ba1747d3f19b09a5d796103eb7c317c31 + c0038093d715a5be68ad686f85b02cf6bb6e3ac7 - + https://github.com/dotnet/windowsdesktop - 1fe5b68ba1747d3f19b09a5d796103eb7c317c31 + c0038093d715a5be68ad686f85b02cf6bb6e3ac7 - + https://github.com/dotnet/windowsdesktop - 1fe5b68ba1747d3f19b09a5d796103eb7c317c31 + c0038093d715a5be68ad686f85b02cf6bb6e3ac7 - + https://github.com/dotnet/windowsdesktop - 1fe5b68ba1747d3f19b09a5d796103eb7c317c31 + c0038093d715a5be68ad686f85b02cf6bb6e3ac7 - + https://github.com/dotnet/wpf - c91615621e61e078854dab8c52fdae083fbd9fe9 + 7d6ff3e4cd96780c54ac69a5f2f4bd81e7ef7699 https://github.com/dotnet/aspnetcore @@ -386,13 +386,13 @@ - + https://github.com/dotnet/winforms - 4b62a73f89858102f5da2fd28debf5d20fd25a9d + 7d8d28254a994996518d78895d5d32a96ed56aaf - + https://github.com/dotnet/wpf - c91615621e61e078854dab8c52fdae083fbd9fe9 + 7d6ff3e4cd96780c54ac69a5f2f4bd81e7ef7699 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 12ab95eb704b..0cd9df39bd24 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -111,7 +111,7 @@ - 9.0.0-rc.2.24429.3 + 9.0.0-rc.2.24430.3 @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24430.7 - 9.0.0-rc.2.24430.7 - 9.0.0-rc.2.24430.7 - 9.0.0-rc.2.24430.7 + 9.0.0-rc.2.24431.1 + 9.0.0-rc.2.24431.1 + 9.0.0-rc.2.24431.1 + 9.0.0-rc.2.24431.1 @@ -268,8 +268,8 @@ - 9.0.0-rc.2.24430.4 - 9.0.0-rc.2.24430.4 + 9.0.0-rc.2.24430.9 + 9.0.0-rc.2.24430.9 From c38d9c20863dbf092fa766c2c50fa270b2239b79 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 31 Aug 2024 13:01:57 +0000 Subject: [PATCH 117/209] Update dependencies from https://github.com/dotnet/arcade build 20240829.5 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24429.3 -> To Version 9.0.0-beta.24429.5 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 8 ++++---- global.json | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c3fa1f0579cd..efa7a03576ef 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -585,34 +585,34 @@ - + https://github.com/dotnet/arcade - b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 + d21db44e84b9038ea7b2add139adee2303d46800 - + https://github.com/dotnet/arcade - b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 + d21db44e84b9038ea7b2add139adee2303d46800 - + https://github.com/dotnet/arcade - b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 + d21db44e84b9038ea7b2add139adee2303d46800 - + https://github.com/dotnet/arcade - b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 + d21db44e84b9038ea7b2add139adee2303d46800 - + https://github.com/dotnet/arcade - b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 + d21db44e84b9038ea7b2add139adee2303d46800 - + https://github.com/dotnet/arcade - b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 + d21db44e84b9038ea7b2add139adee2303d46800 - + https://github.com/dotnet/arcade - b3f0996b03bfab02a8d9e1669ddb6f12b35634a5 + d21db44e84b9038ea7b2add139adee2303d46800 diff --git a/eng/Versions.props b/eng/Versions.props index 19de15713ff4..1f1452987a7f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -313,10 +313,10 @@ - 9.0.0-beta.24429.3 - 9.0.0-beta.24429.3 - 9.0.0-beta.24429.3 - 9.0.0-beta.24429.3 + 9.0.0-beta.24429.5 + 9.0.0-beta.24429.5 + 9.0.0-beta.24429.5 + 9.0.0-beta.24429.5 diff --git a/global.json b/global.json index 39aac0d04498..0d068b6146e4 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24429.3", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24429.3", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24429.5", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24429.5", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From 249a2459cd11022b9aba688b796efaf82d536707 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 31 Aug 2024 13:49:41 +0000 Subject: [PATCH 118/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240831.3 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24431.1 -> To Version 9.0.0-rc.2.24431.3 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f70396f5a695..f0ae8bfa12fd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,22 +250,22 @@ https://github.com/dotnet/runtime 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/windowsdesktop - c0038093d715a5be68ad686f85b02cf6bb6e3ac7 + f2c9625232f0cabdd5bb5c707e2ab7d1a5a73ab3 - + https://github.com/dotnet/windowsdesktop - c0038093d715a5be68ad686f85b02cf6bb6e3ac7 + f2c9625232f0cabdd5bb5c707e2ab7d1a5a73ab3 - + https://github.com/dotnet/windowsdesktop - c0038093d715a5be68ad686f85b02cf6bb6e3ac7 + f2c9625232f0cabdd5bb5c707e2ab7d1a5a73ab3 - + https://github.com/dotnet/windowsdesktop - c0038093d715a5be68ad686f85b02cf6bb6e3ac7 + f2c9625232f0cabdd5bb5c707e2ab7d1a5a73ab3 https://github.com/dotnet/wpf diff --git a/eng/Versions.props b/eng/Versions.props index 0cd9df39bd24..5ed347949476 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24431.1 - 9.0.0-rc.2.24431.1 - 9.0.0-rc.2.24431.1 - 9.0.0-rc.2.24431.1 + 9.0.0-rc.2.24431.3 + 9.0.0-rc.2.24431.3 + 9.0.0-rc.2.24431.3 + 9.0.0-rc.2.24431.3 From 04e62a0a8840ea0820e605cf567107729f15510b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 31 Aug 2024 14:22:25 +0000 Subject: [PATCH 119/209] Update dependencies from https://github.com/dotnet/fsharp build 20240831.1 Microsoft.SourceBuild.Intermediate.fsharp , Microsoft.FSharp.Compiler From Version 9.0.100-beta.24430.1 -> To Version 9.0.100-beta.24431.1 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4ca50ca8174b..d4a6f11120cd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -83,14 +83,14 @@ b82694a16d4963b5765e36fdc89d270fa00dde8e - + https://github.com/dotnet/fsharp - 47b21044223fb274f7e17ebc4d08b2d424eee83b + bb453b34bf66c45af0520f807556f23c966cc6ca - + https://github.com/dotnet/fsharp - 47b21044223fb274f7e17ebc4d08b2d424eee83b + bb453b34bf66c45af0520f807556f23c966cc6ca diff --git a/eng/Versions.props b/eng/Versions.props index b28a6fece142..39f0d3714f94 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -231,7 +231,7 @@ - 12.9.100-beta.24430.1 + 12.9.100-beta.24431.1 From 4167d2379be84afafd73fc6b8af37b0b7c42ddeb Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 31 Aug 2024 21:12:13 +0000 Subject: [PATCH 120/209] Update dependencies from https://github.com/dotnet/test-templates build 20240831.1 Microsoft.SourceBuild.Intermediate.test-templates , Microsoft.DotNet.Test.ProjectTemplates.9.0 From Version 1.1.0-rc.24430.1 -> To Version 1.1.0-rc.24431.1 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 665dc68a0772..025e0f7029e0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -375,14 +375,14 @@ https://github.com/dotnet/test-templates 49c9ad01f057b3c6352bbec12b117acc2224493c - + https://github.com/dotnet/test-templates - 822a3d125cbe841875701073cc7dd450478bfd22 + e833d4684ffa6144968f530a0b3250c540fae026 - + https://github.com/dotnet/test-templates - 822a3d125cbe841875701073cc7dd450478bfd22 + e833d4684ffa6144968f530a0b3250c540fae026 diff --git a/eng/Versions.props b/eng/Versions.props index 83ce6b6178e8..d849efff2704 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -118,7 +118,7 @@ 1.1.0-rc.24069.1 1.1.0-rc.24202.1 - 1.1.0-rc.24430.1 + 1.1.0-rc.24431.1 From 7a02cc834e9ad5a4f3efdb1222af7a331802426b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 1 Sep 2024 12:53:43 +0000 Subject: [PATCH 121/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240901.2 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24431.3 -> To Version 9.0.0-rc.2.24451.2 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.DotNet.Wpf.ProjectTemplates From Version 9.0.0-rc.2.24430.9 -> To Version 9.0.0-rc.2.24451.8 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 12 ++++++------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f0ae8bfa12fd..7210fe30fa3e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,26 +250,26 @@ https://github.com/dotnet/runtime 0a5cccb57942c0493ef680f559f69866f3b1eb7d - + https://github.com/dotnet/windowsdesktop - f2c9625232f0cabdd5bb5c707e2ab7d1a5a73ab3 + 3467c9b992c2b23e08d4cc8aed3eceb93d457350 - + https://github.com/dotnet/windowsdesktop - f2c9625232f0cabdd5bb5c707e2ab7d1a5a73ab3 + 3467c9b992c2b23e08d4cc8aed3eceb93d457350 - + https://github.com/dotnet/windowsdesktop - f2c9625232f0cabdd5bb5c707e2ab7d1a5a73ab3 + 3467c9b992c2b23e08d4cc8aed3eceb93d457350 - + https://github.com/dotnet/windowsdesktop - f2c9625232f0cabdd5bb5c707e2ab7d1a5a73ab3 + 3467c9b992c2b23e08d4cc8aed3eceb93d457350 - + https://github.com/dotnet/wpf - 7d6ff3e4cd96780c54ac69a5f2f4bd81e7ef7699 + 4bbee6591a871580d0ad50ec0191220c24544915 https://github.com/dotnet/aspnetcore @@ -390,9 +390,9 @@ https://github.com/dotnet/winforms 7d8d28254a994996518d78895d5d32a96ed56aaf - + https://github.com/dotnet/wpf - 7d6ff3e4cd96780c54ac69a5f2f4bd81e7ef7699 + 4bbee6591a871580d0ad50ec0191220c24544915 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 5ed347949476..98b5c4315a32 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24431.3 - 9.0.0-rc.2.24431.3 - 9.0.0-rc.2.24431.3 - 9.0.0-rc.2.24431.3 + 9.0.0-rc.2.24451.2 + 9.0.0-rc.2.24451.2 + 9.0.0-rc.2.24451.2 + 9.0.0-rc.2.24451.2 @@ -268,8 +268,8 @@ - 9.0.0-rc.2.24430.9 - 9.0.0-rc.2.24430.9 + 9.0.0-rc.2.24451.8 + 9.0.0-rc.2.24451.8 From bbe626585b926265e20868f09546624dfdb0493f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 2 Sep 2024 12:04:19 +0000 Subject: [PATCH 122/209] Update dependencies from https://github.com/dotnet/msbuild build 20240902.5 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.12.0-preview-24429-01 -> To Version 17.12.0-preview-24452-05 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2692ef49fa50..f96cbe7c8abe 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -69,18 +69,18 @@ 84d642485896a97e0e443be75345c6bb1469a338 - + https://github.com/dotnet/msbuild - 01e53f4161996ce73408117d012f24c2c1737e58 + c93cb12d050da1c5e2ed6b6f57ffc3bff57469a2 - + https://github.com/dotnet/msbuild - 01e53f4161996ce73408117d012f24c2c1737e58 + c93cb12d050da1c5e2ed6b6f57ffc3bff57469a2 - + https://github.com/dotnet/msbuild - 01e53f4161996ce73408117d012f24c2c1737e58 + c93cb12d050da1c5e2ed6b6f57ffc3bff57469a2 diff --git a/eng/Versions.props b/eng/Versions.props index 44fe602cef44..3e383a761010 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -212,8 +212,8 @@ then use that in Directory.Packages.props. At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. --> - 17.12.0-preview-24429-01 - 17.12.0-preview-24429-01 + 17.12.0-preview-24452-05 + 17.12.0-preview-24452-05 $([System.IO.File]::ReadAllText('$(RepoRoot)src\Layout\redist\minimumMSBuildVersion').Trim()) From b8826a566134b27c4a4c43ec2d0974473394d04f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 2 Sep 2024 20:09:09 +0000 Subject: [PATCH 123/209] Update dependencies from https://github.com/dotnet/fsharp build 20240902.1 Microsoft.SourceBuild.Intermediate.fsharp , Microsoft.FSharp.Compiler From Version 9.0.100-beta.24431.1 -> To Version 9.0.100-beta.24452.1 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2692ef49fa50..1a20c3d8a211 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -83,14 +83,14 @@ 01e53f4161996ce73408117d012f24c2c1737e58 - + https://github.com/dotnet/fsharp - bb453b34bf66c45af0520f807556f23c966cc6ca + 20cca61a546fe378948f0550a0026ec6077c1600 - + https://github.com/dotnet/fsharp - bb453b34bf66c45af0520f807556f23c966cc6ca + 20cca61a546fe378948f0550a0026ec6077c1600 diff --git a/eng/Versions.props b/eng/Versions.props index 44fe602cef44..a15acfe53483 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -231,7 +231,7 @@ - 12.9.100-beta.24431.1 + 12.9.100-beta.24452.1 From 871db87ffb2bbfeb2b9a8cf1bdb499992e2416f6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 2 Sep 2024 21:48:16 +0000 Subject: [PATCH 124/209] Update dependencies from https://github.com/dotnet/razor build 20240902.1 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24430.2 -> To Version 9.0.0-preview.24452.1 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2692ef49fa50..4d24a7eb55ee 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/razor - f01a5a8f30ca7257cf7be500c3fceca01eaaceab + 8bddfe9971d754f736d360f16a340e2a8e3e2c55 - + https://github.com/dotnet/razor - f01a5a8f30ca7257cf7be500c3fceca01eaaceab + 8bddfe9971d754f736d360f16a340e2a8e3e2c55 - + https://github.com/dotnet/razor - f01a5a8f30ca7257cf7be500c3fceca01eaaceab + 8bddfe9971d754f736d360f16a340e2a8e3e2c55 - + https://github.com/dotnet/razor - f01a5a8f30ca7257cf7be500c3fceca01eaaceab + 8bddfe9971d754f736d360f16a340e2a8e3e2c55 diff --git a/eng/Versions.props b/eng/Versions.props index 44fe602cef44..11a366436fac 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24430.2 - 9.0.0-preview.24430.2 - 9.0.0-preview.24430.2 + 9.0.0-preview.24452.1 + 9.0.0-preview.24452.1 + 9.0.0-preview.24452.1 From 8ea2a5a2fe588fd1211118fea9c5a51e94c3606b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 12:13:56 +0000 Subject: [PATCH 125/209] Update dependencies from https://github.com/dotnet/roslyn build 20240902.3 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.12.0-3.24430.8 -> To Version 4.12.0-3.24452.3 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6915357c78d7..73624fefa80d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 20cca61a546fe378948f0550a0026ec6077c1600 - + https://github.com/dotnet/roslyn - 5cba0ce666766b1db7cd75009575c7e12c4be72c + c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/roslyn - 5cba0ce666766b1db7cd75009575c7e12c4be72c + c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/roslyn - 5cba0ce666766b1db7cd75009575c7e12c4be72c + c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/roslyn - 5cba0ce666766b1db7cd75009575c7e12c4be72c + c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/roslyn - 5cba0ce666766b1db7cd75009575c7e12c4be72c + c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/roslyn - 5cba0ce666766b1db7cd75009575c7e12c4be72c + c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/roslyn - 5cba0ce666766b1db7cd75009575c7e12c4be72c + c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/roslyn - 5cba0ce666766b1db7cd75009575c7e12c4be72c + c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/roslyn - 5cba0ce666766b1db7cd75009575c7e12c4be72c + c6a0795ce110a904bf7d706a70335f7579390833 https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 05a600093ce6..a5262d1dec1d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,14 +235,14 @@ - 4.12.0-3.24430.8 - 4.12.0-3.24430.8 - 4.12.0-3.24430.8 - 4.12.0-3.24430.8 - 4.12.0-3.24430.8 - 4.12.0-3.24430.8 - 4.12.0-3.24430.8 - 4.12.0-3.24430.8 + 4.12.0-3.24452.3 + 4.12.0-3.24452.3 + 4.12.0-3.24452.3 + 4.12.0-3.24452.3 + 4.12.0-3.24452.3 + 4.12.0-3.24452.3 + 4.12.0-3.24452.3 + 4.12.0-3.24452.3 From a75e222d836421ed4ff923062250fa7d920164f3 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 12:14:22 +0000 Subject: [PATCH 126/209] Update dependencies from https://github.com/dotnet/msbuild build 20240903.6 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.12.0-preview-24452-05 -> To Version 17.12.0-preview-24453-06 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6915357c78d7..8f9a9a0b95f2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -69,18 +69,18 @@ 84d642485896a97e0e443be75345c6bb1469a338 - + https://github.com/dotnet/msbuild - c93cb12d050da1c5e2ed6b6f57ffc3bff57469a2 + d4242542e830fb23c9b0276261799c5bb5dd6a2a - + https://github.com/dotnet/msbuild - c93cb12d050da1c5e2ed6b6f57ffc3bff57469a2 + d4242542e830fb23c9b0276261799c5bb5dd6a2a - + https://github.com/dotnet/msbuild - c93cb12d050da1c5e2ed6b6f57ffc3bff57469a2 + d4242542e830fb23c9b0276261799c5bb5dd6a2a diff --git a/eng/Versions.props b/eng/Versions.props index 05a600093ce6..22e19440c26d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -212,8 +212,8 @@ then use that in Directory.Packages.props. At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. --> - 17.12.0-preview-24452-05 - 17.12.0-preview-24452-05 + 17.12.0-preview-24453-06 + 17.12.0-preview-24453-06 $([System.IO.File]::ReadAllText('$(RepoRoot)src\Layout\redist\minimumMSBuildVersion').Trim()) From df8f830eda4f943f1aa9605a90d6b34f6ea977c7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 12:14:48 +0000 Subject: [PATCH 127/209] Update dependencies from https://github.com/dotnet/sourcelink build 20240902.2 Microsoft.SourceBuild.Intermediate.sourcelink , Microsoft.Build.Tasks.Git , Microsoft.SourceLink.AzureRepos.Git , Microsoft.SourceLink.Bitbucket.Git , Microsoft.SourceLink.Common , Microsoft.SourceLink.GitHub , Microsoft.SourceLink.GitLab From Version 9.0.0-beta.24429.2 -> To Version 9.0.0-beta.24452.2 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6915357c78d7..86f282332706 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -456,34 +456,34 @@ https://github.com/dotnet/deployment-tools 7871ee378dce87b64d930d4f33dca9c888f4034d - + https://github.com/dotnet/sourcelink - 303af3b605542acb8dd111f7a01ce4deaedd34df + 19b29a3cefcc2cd39de466bd36662f9830ed70da - + https://github.com/dotnet/sourcelink - 303af3b605542acb8dd111f7a01ce4deaedd34df + 19b29a3cefcc2cd39de466bd36662f9830ed70da - + https://github.com/dotnet/sourcelink - 303af3b605542acb8dd111f7a01ce4deaedd34df + 19b29a3cefcc2cd39de466bd36662f9830ed70da - + https://github.com/dotnet/sourcelink - 303af3b605542acb8dd111f7a01ce4deaedd34df + 19b29a3cefcc2cd39de466bd36662f9830ed70da - + https://github.com/dotnet/sourcelink - 303af3b605542acb8dd111f7a01ce4deaedd34df + 19b29a3cefcc2cd39de466bd36662f9830ed70da - + https://github.com/dotnet/sourcelink - 303af3b605542acb8dd111f7a01ce4deaedd34df + 19b29a3cefcc2cd39de466bd36662f9830ed70da - + https://github.com/dotnet/sourcelink - 303af3b605542acb8dd111f7a01ce4deaedd34df + 19b29a3cefcc2cd39de466bd36662f9830ed70da diff --git a/eng/Versions.props b/eng/Versions.props index 05a600093ce6..60fff397f7f0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -320,12 +320,12 @@ - 9.0.0-beta.24429.2 - 9.0.0-beta.24429.2 - 9.0.0-beta.24429.2 - 9.0.0-beta.24429.2 - 9.0.0-beta.24429.2 - 9.0.0-beta.24429.2 + 9.0.0-beta.24452.2 + 9.0.0-beta.24452.2 + 9.0.0-beta.24452.2 + 9.0.0-beta.24452.2 + 9.0.0-beta.24452.2 + 9.0.0-beta.24452.2 From e3cb027cf11a1918a365660eebc4b78b3296347a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 12:15:09 +0000 Subject: [PATCH 128/209] Update dependencies from https://github.com/dotnet/source-build-externals build 20240902.1 Microsoft.SourceBuild.Intermediate.source-build-externals From Version 9.0.0-alpha.1.24426.2 -> To Version 9.0.0-alpha.1.24452.1 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6915357c78d7..3f8158e16860 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -441,9 +441,9 @@ - + https://github.com/dotnet/source-build-externals - 59b98ae5bd04e1eebc8ed323193c62ab9e15efe1 + eab3dc5eabdf8bcd9bbdf917741aab335c74373d From acc84f4cf6824a77f0c9fb2154bb16089c42df5d Mon Sep 17 00:00:00 2001 From: Matt Thalman Date: Tue, 3 Sep 2024 08:51:53 -0500 Subject: [PATCH 129/209] Setup private feeds for tests (#43041) --- eng/pipelines/templates/jobs/vmr-build.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/eng/pipelines/templates/jobs/vmr-build.yml b/eng/pipelines/templates/jobs/vmr-build.yml index 4490d6ba8c95..58a38d4c2168 100644 --- a/eng/pipelines/templates/jobs/vmr-build.yml +++ b/eng/pipelines/templates/jobs/vmr-build.yml @@ -383,6 +383,20 @@ jobs: # Only run tests if enabled - ${{ if eq(parameters.runTests, 'True') }}: + # Setup the NuGet sources used by the tests to use private feeds. This is necessary when testing internal-only product + # builds where the packages are only available in the private feeds. This allows the tests to restore from those feeds. + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(sourcesPath)/src/sdk/eng/common/SetupNugetSources.sh + arguments: $(sourcesPath)/src/sdk/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + + - script: cp "$(sourcesPath)/src/sdk/NuGet.config" "$(sourcesPath)/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/online.NuGet.Config" + displayName: Copy Test NuGet Config for Smoke Tests + - script: | set -ex From b3de6c1087238d8079942c10b3dd05dc4a6801ce Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 14:09:31 +0000 Subject: [PATCH 130/209] Update dependencies from https://github.com/microsoft/vstest build 20240903.4 Microsoft.SourceBuild.Intermediate.vstest , Microsoft.NET.Test.Sdk , Microsoft.TestPlatform.Build , Microsoft.TestPlatform.CLI From Version 17.12.0-preview-24422-02 -> To Version 17.12.0-preview-24453-04 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6915357c78d7..800b2948dc82 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -208,22 +208,22 @@ https://github.com/nuget/nuget.client 3db80da582371f1387cd0b3ea029198c76cb78ff - + https://github.com/microsoft/vstest - 54964cdbcd254cbce066d3a2afa2b3908db51abd + 07acde22b65497e72de145d57167b83609a7f7fb - + https://github.com/microsoft/vstest - 54964cdbcd254cbce066d3a2afa2b3908db51abd + 07acde22b65497e72de145d57167b83609a7f7fb - + https://github.com/microsoft/vstest - 54964cdbcd254cbce066d3a2afa2b3908db51abd + 07acde22b65497e72de145d57167b83609a7f7fb - + https://github.com/microsoft/vstest - 54964cdbcd254cbce066d3a2afa2b3908db51abd + 07acde22b65497e72de145d57167b83609a7f7fb diff --git a/eng/Versions.props b/eng/Versions.props index 05a600093ce6..1415a5c44549 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -188,9 +188,9 @@ - 17.12.0-preview-24422-02 - 17.12.0-preview-24422-02 - 17.12.0-preview-24422-02 + 17.12.0-preview-24453-04 + 17.12.0-preview-24453-04 + 17.12.0-preview-24453-04 From 4a8d2feee585eb6bc1ae5a4f322548e86cdd5455 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 14:36:36 +0000 Subject: [PATCH 131/209] Update dependencies from https://github.com/nuget/nuget.client build 6.12.0.89 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 From Version 6.12.0-preview.1.87 -> To Version 6.12.0-preview.1.89 --- eng/Version.Details.xml | 68 ++++++++++++++++++++--------------------- eng/Versions.props | 24 +++++++-------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6915357c78d7..c1a8ae0fcf5d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -139,74 +139,74 @@ https://github.com/dotnet/aspnetcore 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 - + https://github.com/nuget/nuget.client - 3db80da582371f1387cd0b3ea029198c76cb78ff + 38010e5968f1afc9c210866bd2089957906a2492 https://github.com/microsoft/vstest diff --git a/eng/Versions.props b/eng/Versions.props index 05a600093ce6..c28f252dce9f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -173,18 +173,18 @@ - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 - 6.12.0-preview.1.87 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 + 6.12.0-preview.1.89 From 87e099c30d050e0d6847743e7c67f8f14e9bd11d Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Tue, 3 Sep 2024 11:22:17 -0700 Subject: [PATCH 132/209] Remove the extra set of testexecutiondirectory Per analysis of this file, the test execution directory is set and then it's reset to a random value. The initial value doesn't appear to be used so let's remove it to prevent confusion in the future. --- build/RunTestsOnHelix.cmd | 3 --- 1 file changed, 3 deletions(-) diff --git a/build/RunTestsOnHelix.cmd b/build/RunTestsOnHelix.cmd index 49cd4081a934..f55fcf1ead42 100644 --- a/build/RunTestsOnHelix.cmd +++ b/build/RunTestsOnHelix.cmd @@ -10,9 +10,6 @@ set PATH=%DOTNET_ROOT%;%PATH% set DOTNET_MULTILEVEL_LOOKUP=0 set TestFullMSBuild=%1 -set TestExecutionDirectory=%CD%\testExecutionDirectory -mkdir %TestExecutionDirectory% - REM Use powershell to call partical Arcade logic to get full framework msbuild path and assign it if "%TestFullMSBuild%"=="true" ( FOR /F "tokens=*" %%g IN ('PowerShell -ExecutionPolicy ByPass -File "%HELIX_CORRELATION_PAYLOAD%\t\eng\print-full-msbuild-path.ps1"') do (SET DOTNET_SDK_TEST_MSBUILD_PATH=%%g) From 8a5f375e8b3c389487b3fcf95431d2a962153fd1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 18:34:03 +0000 Subject: [PATCH 133/209] Update dependencies from https://github.com/dotnet/xdt build 20240826.1 Microsoft.SourceBuild.Intermediate.xdt , Microsoft.Web.Xdt From Version 9.0.0-preview.24317.2 -> To Version 9.0.0-preview.24426.1 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6915357c78d7..04d6b54132b3 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -394,14 +394,14 @@ https://github.com/dotnet/wpf 4bbee6591a871580d0ad50ec0191220c24544915 - + https://github.com/dotnet/xdt - 0d51607fb791c51a14b552ed24fe3430c252148b + e0d7c74d884dbc5b9e014662617cc4e117be6055 - + https://github.com/dotnet/xdt - 0d51607fb791c51a14b552ed24fe3430c252148b + e0d7c74d884dbc5b9e014662617cc4e117be6055 diff --git a/eng/Versions.props b/eng/Versions.props index 05a600093ce6..3b71ad789a54 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -69,7 +69,7 @@ https://dotnetclimsrc.blob.core.windows.net/dotnet/ - 9.0.0-preview.24317.2 + 9.0.0-preview.24426.1 1.0.0-20230414.1 2.22.0 2.0.1-servicing-26011-01 From 72c5f1f5851e8c255efd81a68073a52fdf674e78 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 20:13:45 +0000 Subject: [PATCH 134/209] Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240821.1 Microsoft.SourceBuild.Intermediate.roslyn-analyzers , Microsoft.CodeAnalysis.NetAnalyzers , Microsoft.CodeAnalysis.PublicApiAnalyzers From Version 3.11.0-beta1.24415.1 -> To Version 3.11.0-beta1.24421.1 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6915357c78d7..639a9c517f4f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -404,18 +404,18 @@ 0d51607fb791c51a14b552ed24fe3430c252148b - + https://github.com/dotnet/roslyn-analyzers - fdb9965ce68c1f4e1c0ff301488adf9caa958615 + 930872ad8817ff59fbb4454e79edf738904d173a - + https://github.com/dotnet/roslyn-analyzers - fdb9965ce68c1f4e1c0ff301488adf9caa958615 + 930872ad8817ff59fbb4454e79edf738904d173a - + https://github.com/dotnet/roslyn-analyzers - fdb9965ce68c1f4e1c0ff301488adf9caa958615 + 930872ad8817ff59fbb4454e79edf738904d173a diff --git a/eng/Versions.props b/eng/Versions.props index 05a600093ce6..a3d3ab41bf55 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -194,8 +194,8 @@ - 9.0.0-preview.24415.1 - 3.11.0-beta1.24415.1 + 9.0.0-preview.24421.1 + 3.11.0-beta1.24421.1 From 86a0a246ff26c8b094e01a4beb669e511ea2c133 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 20:46:42 +0000 Subject: [PATCH 135/209] Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240829.1 Microsoft.SourceBuild.Intermediate.roslyn-analyzers , Microsoft.CodeAnalysis.NetAnalyzers , Microsoft.CodeAnalysis.PublicApiAnalyzers From Version 3.11.0-beta1.24421.1 -> To Version 3.11.0-beta1.24429.1 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 639a9c517f4f..e173a6eacd97 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -404,18 +404,18 @@ 0d51607fb791c51a14b552ed24fe3430c252148b - + https://github.com/dotnet/roslyn-analyzers - 930872ad8817ff59fbb4454e79edf738904d173a + 7db866672807e652611c5654cca67f82e2b1c113 - + https://github.com/dotnet/roslyn-analyzers - 930872ad8817ff59fbb4454e79edf738904d173a + 7db866672807e652611c5654cca67f82e2b1c113 - + https://github.com/dotnet/roslyn-analyzers - 930872ad8817ff59fbb4454e79edf738904d173a + 7db866672807e652611c5654cca67f82e2b1c113 diff --git a/eng/Versions.props b/eng/Versions.props index a3d3ab41bf55..a853859b7ef6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -194,8 +194,8 @@ - 9.0.0-preview.24421.1 - 3.11.0-beta1.24421.1 + 9.0.0-preview.24429.1 + 3.11.0-beta1.24429.1 From 5b9812d009829314b9e6ee5f93e1baed5d3b773d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 20:47:36 +0000 Subject: [PATCH 136/209] Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240825.2 Microsoft.SourceBuild.Intermediate.roslyn-analyzers , Microsoft.CodeAnalysis.NetAnalyzers , Microsoft.CodeAnalysis.PublicApiAnalyzers From Version 3.11.0-beta1.24429.1 -> To Version 3.11.0-beta1.24425.2 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e173a6eacd97..acfb41f8dbf0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -404,18 +404,18 @@ 0d51607fb791c51a14b552ed24fe3430c252148b - + https://github.com/dotnet/roslyn-analyzers - 7db866672807e652611c5654cca67f82e2b1c113 + 930872ad8817ff59fbb4454e79edf738904d173a - + https://github.com/dotnet/roslyn-analyzers - 7db866672807e652611c5654cca67f82e2b1c113 + 930872ad8817ff59fbb4454e79edf738904d173a - + https://github.com/dotnet/roslyn-analyzers - 7db866672807e652611c5654cca67f82e2b1c113 + 930872ad8817ff59fbb4454e79edf738904d173a diff --git a/eng/Versions.props b/eng/Versions.props index a853859b7ef6..5c0ec2dccb80 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -194,8 +194,8 @@ - 9.0.0-preview.24429.1 - 3.11.0-beta1.24429.1 + 9.0.0-preview.24425.2 + 3.11.0-beta1.24425.2 From 135509b0192daa15b450d45b04cb6d27ac44ef9c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 21:02:06 +0000 Subject: [PATCH 137/209] Update dependencies from https://github.com/dotnet/xdt build 20240903.1 Microsoft.SourceBuild.Intermediate.xdt , Microsoft.Web.Xdt From Version 9.0.0-preview.24426.1 -> To Version 9.0.0-preview.24453.1 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 04d6b54132b3..c0d2612391a2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -394,14 +394,14 @@ https://github.com/dotnet/wpf 4bbee6591a871580d0ad50ec0191220c24544915 - + https://github.com/dotnet/xdt - e0d7c74d884dbc5b9e014662617cc4e117be6055 + c2a9df9c1867454039a1223cef1c090359e33646 - + https://github.com/dotnet/xdt - e0d7c74d884dbc5b9e014662617cc4e117be6055 + c2a9df9c1867454039a1223cef1c090359e33646 diff --git a/eng/Versions.props b/eng/Versions.props index 3b71ad789a54..54c8e7e375bb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -69,7 +69,7 @@ https://dotnetclimsrc.blob.core.windows.net/dotnet/ - 9.0.0-preview.24426.1 + 9.0.0-preview.24453.1 1.0.0-20230414.1 2.22.0 2.0.1-servicing-26011-01 From 21911360d4e46ea542b77ea853edaf4a73f8d437 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 3 Sep 2024 21:26:57 +0000 Subject: [PATCH 138/209] Update dependencies from https://github.com/dotnet/aspnetcore build 20240903.1 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 9.0.0-rc.2.24430.8 -> To Version 9.0.0-rc.2.24453.1 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6915357c78d7..02a14131b16b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -131,13 +131,13 @@ https://github.com/dotnet/roslyn 5cba0ce666766b1db7cd75009575c7e12c4be72c - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb https://github.com/nuget/nuget.client @@ -271,54 +271,54 @@ https://github.com/dotnet/wpf 4bbee6591a871580d0ad50ec0191220c24544915 - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb @@ -339,21 +339,21 @@ 8bddfe9971d754f736d360f16a340e2a8e3e2c55 - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb https://github.com/dotnet/test-templates @@ -535,9 +535,9 @@ https://github.com/dotnet/runtime d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/aspnetcore - 2b865e33f2c7c9484c28a3b62e8ff07966e23434 + 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 05a600093ce6..ca21e41caeca 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -246,19 +246,19 @@ - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 - 9.0.0-rc.2.24430.8 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.1 From 34bc2bc90cc4896316da1aa8fbc76a9b861e08c9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 00:09:16 +0000 Subject: [PATCH 139/209] Update dependencies from https://github.com/dotnet/razor build 20240903.2 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24452.1 -> To Version 9.0.0-preview.24453.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e1bec255ba8e..96a6c094b649 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/razor - 8bddfe9971d754f736d360f16a340e2a8e3e2c55 + 277663c9a5cf067ad7c02ec4100894c3a996dee9 - + https://github.com/dotnet/razor - 8bddfe9971d754f736d360f16a340e2a8e3e2c55 + 277663c9a5cf067ad7c02ec4100894c3a996dee9 - + https://github.com/dotnet/razor - 8bddfe9971d754f736d360f16a340e2a8e3e2c55 + 277663c9a5cf067ad7c02ec4100894c3a996dee9 - + https://github.com/dotnet/razor - 8bddfe9971d754f736d360f16a340e2a8e3e2c55 + 277663c9a5cf067ad7c02ec4100894c3a996dee9 diff --git a/eng/Versions.props b/eng/Versions.props index 9cb3464eaa9b..608f68afa516 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24452.1 - 9.0.0-preview.24452.1 - 9.0.0-preview.24452.1 + 9.0.0-preview.24453.2 + 9.0.0-preview.24453.2 + 9.0.0-preview.24453.2 From b9186dd0b1488b75c27e9bd5d8c6d492dd617a69 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Tue, 3 Sep 2024 17:13:58 -0700 Subject: [PATCH 140/209] fix the new deviceid tests Make sure we return an empty string if caching fails but don't error our code refactor the caching code slightly for simplicity --- src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs | 25 ++++++++++++++++--- .../Telemetry/TelemetryCommonProperties.cs | 2 +- .../TelemetryCommonPropertiesTests.cs | 6 ++--- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs b/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs index f4bff2b59fee..a4afb8b13933 100644 --- a/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs +++ b/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs @@ -18,7 +18,15 @@ public static string GetDeviceId() deviceId = Guid.NewGuid().ToString("D").ToLowerInvariant(); // Cache the new device Id - CacheDeviceId(deviceId); + try + { + CacheDeviceId(deviceId); + } + catch + { + // If caching fails, return empty string to avoid sending a non-stored id + deviceId = "" + } } return deviceId; @@ -92,14 +100,25 @@ private static void CacheDeviceId(string deviceId) cacheFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".cache", "deviceid"); } - File.WriteAllText(cacheFilePath, deviceId); + CreateDirectoryAndWriteToFile(cacheFilePath, deviceId); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { // Cache device Id in macOS cache file string cacheFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library", "Application Support", "Microsoft", "DeveloperTools", "deviceid"); - File.WriteAllText(cacheFilePath, deviceId); + + CreateDirectoryAndWriteToFile(cacheFilePath, deviceId); + } + } + + private static void CreateDirectoryAndWriteToFile(string filePath, string content) + { + string directory = Path.GetDirectoryName(filePath); + if (!Directory.Exists(directory)) + { + Directory.CreateDirectory(directory); } + File.WriteAllText(filePath, content); } } } diff --git a/src/Cli/dotnet/Telemetry/TelemetryCommonProperties.cs b/src/Cli/dotnet/Telemetry/TelemetryCommonProperties.cs index b9081c498869..ce167c4c17f7 100644 --- a/src/Cli/dotnet/Telemetry/TelemetryCommonProperties.cs +++ b/src/Cli/dotnet/Telemetry/TelemetryCommonProperties.cs @@ -43,7 +43,7 @@ public TelemetryCommonProperties( private const string ProductVersion = "Product Version"; private const string TelemetryProfile = "Telemetry Profile"; private const string CurrentPathHash = "Current Path Hash"; - private const string DeviceId = "DeviceId"; + private const string DeviceId = "devdeviceid"; private const string MachineId = "Machine ID"; private const string MachineIdOld = "Machine ID Old"; private const string DockerContainer = "Docker Container"; diff --git a/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs b/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs index 00ae49f2d625..44b132f72971 100644 --- a/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs +++ b/test/dotnet.Tests/TelemetryCommonPropertiesTests.cs @@ -37,7 +37,7 @@ public void TelemetryCommonPropertiesShouldReturnHashedMachineId() public void TelemetryCommonPropertiesShouldReturnDevDeviceId() { var unitUnderTest = new TelemetryCommonProperties(getDeviceId: () => "plaintext", userLevelCacheWriter: new NothingCache()); - unitUnderTest.GetTelemetryCommonProperties()["DevDeviceId"].Should().Be("plaintext"); + unitUnderTest.GetTelemetryCommonProperties()["devdeviceid"].Should().Be("plaintext"); } [Fact] @@ -52,8 +52,8 @@ public void TelemetryCommonPropertiesShouldReturnNewGuidWhenCannotGetMacAddress( [Fact] public void TelemetryCommonPropertiesShouldReturnNewGuidWhenCannotDevDeviceId() { - var unitUnderTest = new TelemetryCommonProperties(getDeviceId: () => null, userLevelCacheWriter: new NothingCache()); - var assignedMachineId = unitUnderTest.GetTelemetryCommonProperties()["DevDeviceId"]; + var unitUnderTest = new TelemetryCommonProperties(userLevelCacheWriter: new NothingCache()); + var assignedMachineId = unitUnderTest.GetTelemetryCommonProperties()["devdeviceid"]; Guid.TryParse(assignedMachineId, out var _).Should().BeTrue("it should be a guid"); } From 05a82501a985078cf1d538b91da5cd1ad2f10373 Mon Sep 17 00:00:00 2001 From: Jan Jones Date: Wed, 4 Sep 2024 03:54:14 +0200 Subject: [PATCH 141/209] Warn when NuGetPackageRoot is empty but needed for the toolset compiler (#43119) Co-authored-by: Daniel Plaisted --- src/Tasks/Common/Resources/Strings.resx | 6 +++- src/Tasks/Common/Resources/xlf/Strings.cs.xlf | 5 +++ src/Tasks/Common/Resources/xlf/Strings.de.xlf | 5 +++ src/Tasks/Common/Resources/xlf/Strings.es.xlf | 5 +++ src/Tasks/Common/Resources/xlf/Strings.fr.xlf | 5 +++ src/Tasks/Common/Resources/xlf/Strings.it.xlf | 5 +++ src/Tasks/Common/Resources/xlf/Strings.ja.xlf | 5 +++ src/Tasks/Common/Resources/xlf/Strings.ko.xlf | 5 +++ src/Tasks/Common/Resources/xlf/Strings.pl.xlf | 5 +++ .../Common/Resources/xlf/Strings.pt-BR.xlf | 5 +++ src/Tasks/Common/Resources/xlf/Strings.ru.xlf | 5 +++ src/Tasks/Common/Resources/xlf/Strings.tr.xlf | 5 +++ .../Common/Resources/xlf/Strings.zh-Hans.xlf | 5 +++ .../Common/Resources/xlf/Strings.zh-Hant.xlf | 5 +++ .../targets/Microsoft.NET.Sdk.targets | 11 ++++--- .../GivenThatWeWantToUseFrameworkRoslyn.cs | 32 +++++++++++++++++++ 16 files changed, 109 insertions(+), 5 deletions(-) diff --git a/src/Tasks/Common/Resources/Strings.resx b/src/Tasks/Common/Resources/Strings.resx index d1ea76e01ccc..5d61c56951ac 100644 --- a/src/Tasks/Common/Resources/Strings.resx +++ b/src/Tasks/Common/Resources/Strings.resx @@ -972,5 +972,9 @@ You may need to build the project on another operating system or architecture, o NETSDK1220: UseUwp and all associated functionality require using a TFM of 'net8.0-windows' or greater. {StrBegin="NETSDK1220: "} - + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + + diff --git a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf index c6efaf5b97a6..9af122bb1ccc 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: Projekt byl obnoven pomocí aplikace {0} verze {1}, ale s aktuálním nastavením by se místo toho použít verze {2}. Tento problém vyřešíte tak, že zkontrolujete, že se pro obnovení a následné operace, například sestavení nebo publikování, používá stejné nastavení. Obvykle k tomuto problému může dojít, pokud je vlastnost RuntimeIdentifier nastavena při sestavování nebo publikování, ale ne při obnovování. Další informace najdete na stránce https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.de.xlf b/src/Tasks/Common/Resources/xlf/Strings.de.xlf index 960ba0343a46..5daf23e40273 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.de.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.de.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: Das Projekt wurde mit {0}, Version {1} wiederhergestellt, aber mit den aktuellen Einstellungen würde stattdessen Version {2} verwendet werden. Um dieses Problem zu beheben, müssen Sie sicherstellen, dass für die Wiederherstellung und für nachfolgende Vorgänge wie das Kompilieren oder Veröffentlichen dieselben Einstellungen verwendet werden. Dieses Problem tritt typischerweise auf, wenn die RuntimeIdentifier-Eigenschaft bei der Kompilierung oder Veröffentlichung, aber nicht bei der Wiederherstellung festgelegt wird. Weitere Informationen finden Sie unter https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.es.xlf b/src/Tasks/Common/Resources/xlf/Strings.es.xlf index 3f40768ebd93..1c900be6713d 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.es.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.es.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: El proyecto fue restaurado utilizando la versión {0} {1}, pero con la configuración actual, la versión {2} se utilizaría en su lugar. Para resolver este problema, asegúrese de que la misma configuración se utiliza para restaurar y para operaciones posteriores como compilar o publicar. Normalmente, este problema puede producirse si la `propiedad RuntimeIdentifier se establece durante la compilación o la publicación pero no durante la restauración. Para obtener más información, consulte https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf index 69b842ace1f8..823fd6eee61b 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: Le projet a été restauré avec la version {0} {1}, mais avec les paramètres actuels, la version {2} serait utilisée à la place. Pour résoudre ce problème, assurez-vous que les mêmes paramètres sont utilisés pour la restauration et pour les opérations ultérieures telles que la génération et la publication. Généralement, ce problème peut se produire si la propriété RuntimeIdentifier est définie au cours de la génération ou de la publication, mais pas pendant la restauration. Pour plus d’informations, consultez https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.it.xlf b/src/Tasks/Common/Resources/xlf/Strings.it.xlf index 476d820bd76f..37a4ea08465e 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.it.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.it.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: per il ripristino del progetto è stato usato {0} versione {1}, ma con le impostazioni correnti viene usata la versione {2}. Per risolvere il problema, assicurarsi di usare le stesse impostazioni per il ripristino e per le operazioni successive, quali compilazione o pubblicazione. In genere questo problema può verificarsi se la proprietà RuntimeIdentifier viene impostata durante la compilazione o la pubblicazione, ma non durante il ripristino. Per altre informazioni, vedere https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf index e18ecb2d935d..5ff604793cc8 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: プロジェクトは {0} バージョン {1} を使用して復元されましたが、現在の設定では、バージョン {2} が代わりに使用されます。この問題を解決するには、復元およびこれ以降の操作 (ビルドや公開など) で同じ設定を使用していることをご確認ください。通常この問題は、ビルドや公開の実行時に RuntimeIdentifier プロパティを設定したが、復元時には設定していない場合に発生することがあります。詳しくは、https://aka.ms/dotnet-runtime-patch-selection を参照してください。 diff --git a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf index 48330f1d9efa..d4ec790feb25 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: {0} 버전 {1}을(를) 사용하여 프로젝트가 복원되었지만, 현재 설정에서는 버전 {2}을(를) 대신 사용합니다. 이 문제를 해결하려면 복원 및 후속 작업(예: 빌드 또는 게시)에 동일한 설정을 사용해야 합니다. 일반적으로 이 문제는 RuntimeIdentifier 속성이 빌드 또는 게시 중에 설정되었지만, 복원 중에는 설정되지 않은 경우에 발생할 수 있습니다. 자세한 내용은 https://aka.ms/dotnet-runtime-patch-selection을 참조하세요. diff --git a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf index fa08ce1a4296..bfcddc22f639 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: Projekt został przywrócony przy użyciu pakietu {0} w wersji {1}, ale w przypadku bieżących ustawień zamiast niej zostałaby użyta wersja {2}. Aby rozwiązać ten problem, upewnij się, że te same ustawienia są używane do przywracania i dla kolejnych operacji, takich jak kompilacja lub publikowanie. Ten problem zazwyczaj występuje, gdy właściwość RuntimeIdentifier jest ustawiona podczas kompilacji lub publikowania, ale nie podczas przywracania. Aby uzyskać więcej informacji, zobacz https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf index 5ee5a17f36fd..a772aef9eca7 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: o projeto foi restaurado usando o {0} versão {1}, mas, com as configurações atuais, a versão {2} seria usada. Para resolver esse problema, verifique se as mesmas configurações são usadas para restauração e para operações subsequentes, como compilação ou publicação. Normalmente, esse problema poderá ocorrer se a propriedade RuntimeIdentifier for definida durante a compilação ou a publicação, mas não durante a restauração. Para obter mais informações, consulte https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf index f56aeb721ba1..af1579d08057 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: Проект был восстановлен с использованием {0} версии {1}, но с текущими параметрами вместо этой версии будет использована версия {2}. Чтобы устранить эту проблему, убедитесь, что для восстановления и последующих операций (таких как сборка или публикация) используются одинаковые параметры. Обычно эта проблема возникает, когда свойство RuntimeIdentifier устанавливается во время сборки или публикации, но не во время восстановления. Дополнительные сведения см. на странице https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf index dc896c5abf16..42062ee8e07c 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: Proje, {0} sürüm {1} kullanılarak geri yüklendi, ancak geçerli ayarlarla, bunun yerine sürüm {2} kullanılması gerekiyordu. Bu sorunu çözmek amacıyla, geri yükleme için ve derleme veya yayımlama gibi sonraki işlemler için aynı ayarların kullanıldığından emin olun. Bu sorun genellikle RuntimeIdentifier özelliği derleme veya yayımlama sırasında ayarlandığında ancak geri yükleme sırasında ayarlanmadığında oluşur. Daha fazla bilgi için bkz. https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf index 02ae8ab6ce26..e259ba8ae8e0 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: 项目是使用 {0} 版本 {1} 还原的, 但使用当前设置, 将改用版本 {2}。要解决此问题, 请确保将相同的设置用于还原和后续操作 (如生成或发布)。通常, 如果 RuntimeIdentifier 属性是在生成或发布过程中设置的, 而不是在还原过程中进行的, 则会发生此问题。有关详细信息, 请参阅 https://aka.ms/dotnet-runtime-patch-selection。 diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf index 24273d19efe1..e635e095d1f9 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf @@ -593,6 +593,11 @@ The following are names of parameters or literal values and should not be transl NETSDK1216: Package Microsoft.Net.Sdk.Compilers.Toolset is not downloaded but it is needed because your MSBuild and SDK versions are mismatched. Ensure version {0} of the package is available in your NuGet source feeds and then run NuGet package restore from Visual Studio or MSBuild. {StrBegin="NETSDK1216: "}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"} {0} is a NuGet package version and should not be translated. + + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. + {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. NETSDK1061: 專案是使用 {0} 版本 {1} 還原的,但依照目前設定,使用的版本會是 {2}。若要解決此問題,請確認用於還原與後續作業 (例如建置或發佈) 的設定相同。一般而言,若在建置或發佈期間設定了 RuntimeIdentifier,但在還原期間未加以設定,就可能發生這個問題。如需詳細資訊,請參閱 https://aka.ms/dotnet-runtime-patch-selection。 diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets index 6ad10f44a98f..d8ebcd1db6a9 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets @@ -232,8 +232,7 @@ Copyright (c) .NET Foundation. All rights reserved. $(NuGetPackageRoot)\microsoft.net.sdk.compilers.toolset\$(NETCoreSdkVersion) <_NeedToDownloadMicrosoftNetSdkCompilersToolsetPackage>true - - <_SkipCheckMicrosoftNetSdkCompilersToolsetPackageExists Condition="'$(NuGetPackageRoot)' == ''">true + <_MicrosoftNetSdkCompilersToolsetPackageRootEmpty Condition="'$(NuGetPackageRoot)' == ''">true @@ -256,13 +255,17 @@ Copyright (c) .NET Foundation. All rights reserved. + + + - + https://github.com/dotnet/aspnetcore - 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb + bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 @@ -339,21 +339,21 @@ 8bddfe9971d754f736d360f16a340e2a8e3e2c55 - + https://github.com/dotnet/aspnetcore - 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb + bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 - + https://github.com/dotnet/aspnetcore - 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb + bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 - + https://github.com/dotnet/aspnetcore - 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb + bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 - + https://github.com/dotnet/aspnetcore - 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb + bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 https://github.com/dotnet/test-templates @@ -535,9 +535,9 @@ https://github.com/dotnet/runtime d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/aspnetcore - 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb + bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 8b6bf5178ac7..5045491a9f96 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -246,19 +246,19 @@ - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 - 9.0.0-rc.2.24453.1 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.15 From 7f31a9779624ad8651617359f535bf3b73988789 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 04:03:23 +0000 Subject: [PATCH 143/209] Update dependencies from https://github.com/dotnet/templating build 20240903.2 Microsoft.SourceBuild.Intermediate.templating , Microsoft.TemplateEngine.Abstractions , Microsoft.TemplateEngine.Mocks From Version 9.0.100-rc.2.24427.3 -> To Version 9.0.100-rc.2.24453.2 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d675fa4ccf41..6c831ded9d0b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,18 +1,18 @@ - + https://github.com/dotnet/templating - 133c2a92258a1d4047eb077e39aa82b445dd57f5 + 90d52f21f86cded2998c882c61dd8452ef6a9f5f - + https://github.com/dotnet/templating - 133c2a92258a1d4047eb077e39aa82b445dd57f5 + 90d52f21f86cded2998c882c61dd8452ef6a9f5f - + https://github.com/dotnet/templating - 133c2a92258a1d4047eb077e39aa82b445dd57f5 + 90d52f21f86cded2998c882c61dd8452ef6a9f5f diff --git a/eng/Versions.props b/eng/Versions.props index 8b6bf5178ac7..104e34df53f6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -218,13 +218,13 @@ - 9.0.100-rc.2.24427.3 + 9.0.100-rc.2.24453.2 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 9.0.100-rc.2.24427.3 + 9.0.100-rc.2.24453.2 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) From c227666c150c07daf4bd5f126f305ea301930edc Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 05:24:47 +0000 Subject: [PATCH 144/209] Update dependencies from https://github.com/dotnet/aspnetcore build 20240903.17 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 9.0.0-rc.2.24453.15 -> To Version 9.0.0-rc.2.24453.17 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 410d17bb211d..a04241063a72 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -131,13 +131,13 @@ https://github.com/dotnet/roslyn c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 https://github.com/nuget/nuget.client @@ -271,54 +271,54 @@ https://github.com/dotnet/wpf 4bbee6591a871580d0ad50ec0191220c24544915 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 @@ -339,21 +339,21 @@ 8bddfe9971d754f736d360f16a340e2a8e3e2c55 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 https://github.com/dotnet/test-templates @@ -535,9 +535,9 @@ https://github.com/dotnet/runtime d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/aspnetcore - bf0f087f762ae9784bd5a3cdbea7d4f02f8d5af4 + b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 5045491a9f96..2ef4c78c8650 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -246,19 +246,19 @@ - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 - 9.0.0-rc.2.24453.15 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24453.17 From 81d1c461477ffdee944e23a6c60c26380eb91633 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 07:09:52 +0000 Subject: [PATCH 145/209] Update dependencies from https://github.com/dotnet/razor build 20240903.8 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24453.2 -> To Version 9.0.0-preview.24453.8 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 96a6c094b649..ae81bc6d6ca4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/razor - 277663c9a5cf067ad7c02ec4100894c3a996dee9 + 4ec65fb914d964d3207edf5a3b8b5dab998d9d60 - + https://github.com/dotnet/razor - 277663c9a5cf067ad7c02ec4100894c3a996dee9 + 4ec65fb914d964d3207edf5a3b8b5dab998d9d60 - + https://github.com/dotnet/razor - 277663c9a5cf067ad7c02ec4100894c3a996dee9 + 4ec65fb914d964d3207edf5a3b8b5dab998d9d60 - + https://github.com/dotnet/razor - 277663c9a5cf067ad7c02ec4100894c3a996dee9 + 4ec65fb914d964d3207edf5a3b8b5dab998d9d60 diff --git a/eng/Versions.props b/eng/Versions.props index 608f68afa516..93096aafc08f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24453.2 - 9.0.0-preview.24453.2 - 9.0.0-preview.24453.2 + 9.0.0-preview.24453.8 + 9.0.0-preview.24453.8 + 9.0.0-preview.24453.8 From 86864088665b25576d3df8493b518374b51e9b04 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 12:20:56 +0000 Subject: [PATCH 146/209] Update dependencies from https://github.com/dotnet/razor build 20240904.1 Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 7.0.0-preview.24407.1 -> To Version 7.0.0-preview.24454.1 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c6736570d745..2b3f02ef17c6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -289,18 +289,18 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 954f61dd38b33caa2b736c73530bd5a294174437 - + https://github.com/dotnet/razor - b5c4983ae50d899cac4847531295feafa5e442b2 + 187962c1773a6056402dd1d92099abaea5c7fdac - + https://github.com/dotnet/razor - b5c4983ae50d899cac4847531295feafa5e442b2 + 187962c1773a6056402dd1d92099abaea5c7fdac - + https://github.com/dotnet/razor - b5c4983ae50d899cac4847531295feafa5e442b2 + 187962c1773a6056402dd1d92099abaea5c7fdac https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index d071c3523107..c314b05245ff 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -178,9 +178,9 @@ - 7.0.0-preview.24407.1 - 7.0.0-preview.24407.1 - 7.0.0-preview.24407.1 + 7.0.0-preview.24454.1 + 7.0.0-preview.24454.1 + 7.0.0-preview.24454.1 From 6c299de71f1a8957b066776d36f88b10e94cd437 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 12:21:29 +0000 Subject: [PATCH 147/209] Update dependencies from https://github.com/dotnet/roslyn build 20240903.2 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.10.0-3.24427.10 -> To Version 4.10.0-3.24453.2 --- eng/Version.Details.xml | 14 +++++++------- eng/Versions.props | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c6736570d745..5905ba325537 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,32 +82,32 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn 6602e40818222de350436248d796d43abde37ddb - + https://github.com/dotnet/roslyn 6602e40818222de350436248d796d43abde37ddb diff --git a/eng/Versions.props b/eng/Versions.props index d071c3523107..09e4efd43781 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.10.0-3.24427.10 - 4.10.0-3.24427.10 - 4.10.0-3.24427.10 - 4.10.0-3.24427.10 - 4.10.0-3.24427.10 - 4.10.0-3.24427.10 - 4.10.0-3.24427.10 + 4.10.0-3.24453.2 + 4.10.0-3.24453.2 + 4.10.0-3.24453.2 + 4.10.0-3.24453.2 + 4.10.0-3.24453.2 + 4.10.0-3.24453.2 + 4.10.0-3.24453.2 $(MicrosoftNetCompilersToolsetPackageVersion) From 2b790614bf2732a094a0744507cbf05b3c5ff684 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 12:24:43 +0000 Subject: [PATCH 148/209] Update dependencies from https://github.com/dotnet/roslyn build 20240903.3 Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset From Version 4.11.0-3.24428.4 -> To Version 4.11.0-3.24453.3 --- eng/Version.Details.xml | 14 +++++++------- eng/Versions.props | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0471d59366f3..a74b2d52583c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -82,32 +82,32 @@ 7bb270d0f3380ff4adcb5e917fb5a2111d50bbad - + https://github.com/dotnet/roslyn 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 - + https://github.com/dotnet/roslyn 1ea9c390a5bb6815fdff2137ee155e23e78d6ff3 diff --git a/eng/Versions.props b/eng/Versions.props index 01b66dad588c..5f724b73126a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -157,13 +157,13 @@ - 4.11.0-3.24428.4 - 4.11.0-3.24428.4 - 4.11.0-3.24428.4 - 4.11.0-3.24428.4 - 4.11.0-3.24428.4 - 4.11.0-3.24428.4 - 4.11.0-3.24428.4 + 4.11.0-3.24453.3 + 4.11.0-3.24453.3 + 4.11.0-3.24453.3 + 4.11.0-3.24453.3 + 4.11.0-3.24453.3 + 4.11.0-3.24453.3 + 4.11.0-3.24453.3 $(MicrosoftNetCompilersToolsetPackageVersion) From 62a6919fd77beae7b209f5414a3b66033b915f50 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 12:25:16 +0000 Subject: [PATCH 149/209] Update dependencies from https://github.com/dotnet/razor build 20240903.9 Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24423.1 -> To Version 9.0.0-preview.24453.9 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0471d59366f3..3ece207e7507 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -289,18 +289,18 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 954f61dd38b33caa2b736c73530bd5a294174437 - + https://github.com/dotnet/razor - b5e50df9971db8cd118b25b0dc414d830d0a5afc + 41acbdeb665c11bf26fea16b017ebf54e6a74e22 - + https://github.com/dotnet/razor - b5e50df9971db8cd118b25b0dc414d830d0a5afc + 41acbdeb665c11bf26fea16b017ebf54e6a74e22 - + https://github.com/dotnet/razor - b5e50df9971db8cd118b25b0dc414d830d0a5afc + 41acbdeb665c11bf26fea16b017ebf54e6a74e22 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 01b66dad588c..e1eea7e094a2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -178,9 +178,9 @@ - 9.0.0-preview.24423.1 - 9.0.0-preview.24423.1 - 9.0.0-preview.24423.1 + 9.0.0-preview.24453.9 + 9.0.0-preview.24453.9 + 9.0.0-preview.24453.9 From 4c3b9fafc1398d87969eaf19b6fb5b7b67714121 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 12:29:40 +0000 Subject: [PATCH 150/209] Update dependencies from https://github.com/dotnet/roslyn build 20240903.6 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.12.0-3.24452.3 -> To Version 4.12.0-3.24453.6 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d675fa4ccf41..d0167685a9ea 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 20cca61a546fe378948f0550a0026ec6077c1600 - + https://github.com/dotnet/roslyn - c6a0795ce110a904bf7d706a70335f7579390833 + 077642f1000b5cf3ab3e31c3cb4f289d5190db33 - + https://github.com/dotnet/roslyn - c6a0795ce110a904bf7d706a70335f7579390833 + 077642f1000b5cf3ab3e31c3cb4f289d5190db33 - + https://github.com/dotnet/roslyn - c6a0795ce110a904bf7d706a70335f7579390833 + 077642f1000b5cf3ab3e31c3cb4f289d5190db33 - + https://github.com/dotnet/roslyn - c6a0795ce110a904bf7d706a70335f7579390833 + 077642f1000b5cf3ab3e31c3cb4f289d5190db33 - + https://github.com/dotnet/roslyn - c6a0795ce110a904bf7d706a70335f7579390833 + 077642f1000b5cf3ab3e31c3cb4f289d5190db33 - + https://github.com/dotnet/roslyn - c6a0795ce110a904bf7d706a70335f7579390833 + 077642f1000b5cf3ab3e31c3cb4f289d5190db33 - + https://github.com/dotnet/roslyn - c6a0795ce110a904bf7d706a70335f7579390833 + 077642f1000b5cf3ab3e31c3cb4f289d5190db33 - + https://github.com/dotnet/roslyn - c6a0795ce110a904bf7d706a70335f7579390833 + 077642f1000b5cf3ab3e31c3cb4f289d5190db33 - + https://github.com/dotnet/roslyn - c6a0795ce110a904bf7d706a70335f7579390833 + 077642f1000b5cf3ab3e31c3cb4f289d5190db33 https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 8b6bf5178ac7..2ff9f8858fc3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,14 +235,14 @@ - 4.12.0-3.24452.3 - 4.12.0-3.24452.3 - 4.12.0-3.24452.3 - 4.12.0-3.24452.3 - 4.12.0-3.24452.3 - 4.12.0-3.24452.3 - 4.12.0-3.24452.3 - 4.12.0-3.24452.3 + 4.12.0-3.24453.6 + 4.12.0-3.24453.6 + 4.12.0-3.24453.6 + 4.12.0-3.24453.6 + 4.12.0-3.24453.6 + 4.12.0-3.24453.6 + 4.12.0-3.24453.6 + 4.12.0-3.24453.6 From d980ce1dbfd498757ff99e69d538f69b1ad0f6b7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 12:31:20 +0000 Subject: [PATCH 151/209] Update dependencies from https://github.com/dotnet/msbuild build 20240903.7 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.12.0-preview-24453-06 -> To Version 17.12.0-preview-24453-07 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d675fa4ccf41..6e58a4821780 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -69,18 +69,18 @@ 84d642485896a97e0e443be75345c6bb1469a338 - + https://github.com/dotnet/msbuild - d4242542e830fb23c9b0276261799c5bb5dd6a2a + 7cf66090a764f0f239671e4877255efe7ba91155 - + https://github.com/dotnet/msbuild - d4242542e830fb23c9b0276261799c5bb5dd6a2a + 7cf66090a764f0f239671e4877255efe7ba91155 - + https://github.com/dotnet/msbuild - d4242542e830fb23c9b0276261799c5bb5dd6a2a + 7cf66090a764f0f239671e4877255efe7ba91155 diff --git a/eng/Versions.props b/eng/Versions.props index 8b6bf5178ac7..f5d0a1d8b362 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -212,8 +212,8 @@ then use that in Directory.Packages.props. At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. --> - 17.12.0-preview-24453-06 - 17.12.0-preview-24453-06 + 17.12.0-preview-24453-07 + 17.12.0-preview-24453-07 $([System.IO.File]::ReadAllText('$(RepoRoot)src\Layout\redist\minimumMSBuildVersion').Trim()) From 88456566d8ff4f7715673ca44f0b9495b5219564 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 12:34:14 +0000 Subject: [PATCH 152/209] Update dependencies from https://github.com/dotnet/runtime build 20240903.5 Microsoft.Bcl.AsyncInterfaces , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.SystemEvents , System.CodeDom , System.Composition.AttributedModel , System.Composition.Convention , System.Composition.Hosting , System.Composition.Runtime , System.Composition.TypedParts , System.Configuration.ConfigurationManager , System.Formats.Asn1 , 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 , VS.Redist.Common.NetCore.SharedFramework.x64.9.0 , VS.Redist.Common.NetCore.TargetingPack.x64.9.0 , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.0-rc.2.24429.19 -> To Version 9.0.0-rc.2.24453.5 --- eng/Version.Details.xml | 140 ++++++++++++++++++++-------------------- eng/Versions.props | 68 +++++++++---------- 2 files changed, 104 insertions(+), 104 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d675fa4ccf41..59b8535a7be3 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,42 +15,42 @@ 133c2a92258a1d4047eb077e39aa82b445dd57f5 - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f @@ -226,29 +226,29 @@ 07acde22b65497e72de145d57167b83609a7f7fb - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f https://github.com/dotnet/windowsdesktop @@ -499,89 +499,89 @@ - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f https://github.com/dotnet/aspnetcore 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f @@ -615,9 +615,9 @@ d21db44e84b9038ea7b2add139adee2303d46800 - + https://github.com/dotnet/runtime - d0f3235d312f7cf9683012b3fe96b2c6f20a1743 + 31528d082bd760377b8d818fc839a338cd071b1f https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index 8b6bf5178ac7..f9954aa73ac8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,47 +122,47 @@ - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 8.0.0-rc.1.23414.4 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 2.1.0 - 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24453.5 8.0.0 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 8.0.0 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 8.0.4 - 9.0.0-rc.2.24429.19 - 9.0.0-rc.2.24429.19 + 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24453.5 From 7e811b1690efd03ece531b61ade726facb96b531 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 12:44:09 +0000 Subject: [PATCH 153/209] Update dependencies from https://github.com/dotnet/arcade build 20240903.1 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24429.5 -> To Version 9.0.0-beta.24453.1 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 8 ++++---- global.json | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d675fa4ccf41..1365ff1b1377 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -585,34 +585,34 @@ - + https://github.com/dotnet/arcade - d21db44e84b9038ea7b2add139adee2303d46800 + dd332f2d4e21daa8b79f84251ab156af9a0b11b2 - + https://github.com/dotnet/arcade - d21db44e84b9038ea7b2add139adee2303d46800 + dd332f2d4e21daa8b79f84251ab156af9a0b11b2 - + https://github.com/dotnet/arcade - d21db44e84b9038ea7b2add139adee2303d46800 + dd332f2d4e21daa8b79f84251ab156af9a0b11b2 - + https://github.com/dotnet/arcade - d21db44e84b9038ea7b2add139adee2303d46800 + dd332f2d4e21daa8b79f84251ab156af9a0b11b2 - + https://github.com/dotnet/arcade - d21db44e84b9038ea7b2add139adee2303d46800 + dd332f2d4e21daa8b79f84251ab156af9a0b11b2 - + https://github.com/dotnet/arcade - d21db44e84b9038ea7b2add139adee2303d46800 + dd332f2d4e21daa8b79f84251ab156af9a0b11b2 - + https://github.com/dotnet/arcade - d21db44e84b9038ea7b2add139adee2303d46800 + dd332f2d4e21daa8b79f84251ab156af9a0b11b2 diff --git a/eng/Versions.props b/eng/Versions.props index 8b6bf5178ac7..a67187e22d87 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -313,10 +313,10 @@ - 9.0.0-beta.24429.5 - 9.0.0-beta.24429.5 - 9.0.0-beta.24429.5 - 9.0.0-beta.24429.5 + 9.0.0-beta.24453.1 + 9.0.0-beta.24453.1 + 9.0.0-beta.24453.1 + 9.0.0-beta.24453.1 diff --git a/global.json b/global.json index 0d068b6146e4..3bbfe6aa4ee1 100644 --- a/global.json +++ b/global.json @@ -17,8 +17,8 @@ "cmake": "latest" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24429.5", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24429.5", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24453.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24453.1", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1" } From dbf0f7a001e6c78b8ae55847480fe0958c0c2c7b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 14:05:36 +0000 Subject: [PATCH 154/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240904.1 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24451.2 -> To Version 9.0.0-rc.2.24454.1 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d675fa4ccf41..f5419cfa4720 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,22 +250,22 @@ https://github.com/dotnet/runtime d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/windowsdesktop - 3467c9b992c2b23e08d4cc8aed3eceb93d457350 + 62e8f0165e9aef8589ed419f821c0b93bfc3a76c - + https://github.com/dotnet/windowsdesktop - 3467c9b992c2b23e08d4cc8aed3eceb93d457350 + 62e8f0165e9aef8589ed419f821c0b93bfc3a76c - + https://github.com/dotnet/windowsdesktop - 3467c9b992c2b23e08d4cc8aed3eceb93d457350 + 62e8f0165e9aef8589ed419f821c0b93bfc3a76c - + https://github.com/dotnet/windowsdesktop - 3467c9b992c2b23e08d4cc8aed3eceb93d457350 + 62e8f0165e9aef8589ed419f821c0b93bfc3a76c https://github.com/dotnet/wpf diff --git a/eng/Versions.props b/eng/Versions.props index 8b6bf5178ac7..c6896178ff41 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24451.2 - 9.0.0-rc.2.24451.2 - 9.0.0-rc.2.24451.2 - 9.0.0-rc.2.24451.2 + 9.0.0-rc.2.24454.1 + 9.0.0-rc.2.24454.1 + 9.0.0-rc.2.24454.1 + 9.0.0-rc.2.24454.1 From 6df92dc38e0328e66b842f2aadccd6af1211cc20 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 16:48:27 +0000 Subject: [PATCH 155/209] Update dependencies from https://github.com/nuget/nuget.client build 6.12.0.90 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 From Version 6.12.0-preview.1.89 -> To Version 6.12.0-preview.1.90 --- eng/Version.Details.xml | 68 ++++++++++++++++++++--------------------- eng/Versions.props | 24 +++++++-------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d675fa4ccf41..a7dfc291b120 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -139,74 +139,74 @@ https://github.com/dotnet/aspnetcore 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 - + https://github.com/nuget/nuget.client - 38010e5968f1afc9c210866bd2089957906a2492 + 8285b74c46ce9f01b1111c181bac535bc26aa9e0 https://github.com/microsoft/vstest diff --git a/eng/Versions.props b/eng/Versions.props index 8b6bf5178ac7..a74d3ea63b77 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -173,18 +173,18 @@ - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 - 6.12.0-preview.1.89 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 + 6.12.0-preview.1.90 From dd752f00c9b1eed971a5855e1df7deea55db94a1 Mon Sep 17 00:00:00 2001 From: Forgind <12969783+Forgind@users.noreply.github.com> Date: Tue, 6 Aug 2024 14:54:08 -0400 Subject: [PATCH 156/209] fix feature band source --- .../dotnet/commands/dotnet-workload/WorkloadCommandParser.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Cli/dotnet/commands/dotnet-workload/WorkloadCommandParser.cs b/src/Cli/dotnet/commands/dotnet-workload/WorkloadCommandParser.cs index 7e2d7a20e8c7..db433c14981b 100644 --- a/src/Cli/dotnet/commands/dotnet-workload/WorkloadCommandParser.cs +++ b/src/Cli/dotnet/commands/dotnet-workload/WorkloadCommandParser.cs @@ -93,7 +93,7 @@ internal static void ShowWorkloadsInfo(ParseResult parseResult = null, WorkloadI reporter.WriteLine($" {workloadManifest.ManifestPath,align}"); reporter.Write($"{separator}{CommonStrings.WorkloadInstallTypeColumn}:"); - reporter.WriteLine($" {WorkloadInstallType.GetWorkloadInstallType(new SdkFeatureBand(workloadFeatureBand), dotnetPath).ToString(),align}" + reporter.WriteLine($" {WorkloadInstallType.GetWorkloadInstallType(new SdkFeatureBand(Utils.Product.Version), dotnetPath).ToString(),align}" ); reporter.WriteLine(""); } From cd3a47010b0d037a7175ea270113c7a82524f55f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 17:56:53 +0000 Subject: [PATCH 157/209] Update dependencies from https://github.com/dotnet/razor build 20240904.2 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24453.8 -> To Version 9.0.0-preview.24454.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ae81bc6d6ca4..889f28c30340 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/razor - 4ec65fb914d964d3207edf5a3b8b5dab998d9d60 + 90b1855f86ea6da0b70c1e26031ed8b3004bc463 - + https://github.com/dotnet/razor - 4ec65fb914d964d3207edf5a3b8b5dab998d9d60 + 90b1855f86ea6da0b70c1e26031ed8b3004bc463 - + https://github.com/dotnet/razor - 4ec65fb914d964d3207edf5a3b8b5dab998d9d60 + 90b1855f86ea6da0b70c1e26031ed8b3004bc463 - + https://github.com/dotnet/razor - 4ec65fb914d964d3207edf5a3b8b5dab998d9d60 + 90b1855f86ea6da0b70c1e26031ed8b3004bc463 diff --git a/eng/Versions.props b/eng/Versions.props index 93096aafc08f..9d46cb75a5eb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24453.8 - 9.0.0-preview.24453.8 - 9.0.0-preview.24453.8 + 9.0.0-preview.24454.2 + 9.0.0-preview.24454.2 + 9.0.0-preview.24454.2 From d3e74996c84078b0fb4bf74c03069f7cd696c3bb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 4 Sep 2024 14:47:20 -0500 Subject: [PATCH 158/209] [release/9.0.1xx] Allow roslyn binary into VMR (#43205) --- src/SourceBuild/content/eng/allowed-vmr-binaries.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SourceBuild/content/eng/allowed-vmr-binaries.txt b/src/SourceBuild/content/eng/allowed-vmr-binaries.txt index 381765b4d899..cb4f8a2fc47e 100644 --- a/src/SourceBuild/content/eng/allowed-vmr-binaries.txt +++ b/src/SourceBuild/content/eng/allowed-vmr-binaries.txt @@ -86,6 +86,7 @@ src/roslyn/src/Compilers/Test/Resources/Core/**/*.dll src/roslyn/src/Compilers/Test/Resources/Core/**/*.exe src/roslyn/src/Compilers/Test/Resources/Core/**/*.Dll src/roslyn/src/ExpressionEvaluator/Core/Source/ExpressionCompiler/Resources/WindowsProxy.winmd +src/roslyn/src/Workspaces/CoreTest/Resources/* src/roslyn/src/Workspaces/MSBuildTest/Resources/Dlls/*.dll src/roslyn/**/CodeAnalysisTest/**/*.res src/roslyn/**/CodeAnalysisTest/**/*.blah From 79c4576f28b6e0eabafec43bb0a17789c7d69b45 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Wed, 4 Sep 2024 12:48:25 -0700 Subject: [PATCH 159/209] add trailing ; --- src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs b/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs index a4afb8b13933..360e530e3b49 100644 --- a/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs +++ b/src/Cli/dotnet/Telemetry/DevDeviceIDGetter.cs @@ -25,7 +25,7 @@ public static string GetDeviceId() catch { // If caching fails, return empty string to avoid sending a non-stored id - deviceId = "" + deviceId = ""; } } From ff2cdd892abee53621ac4bbd5cd09c6ac74e319e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 20:54:16 +0000 Subject: [PATCH 160/209] Update dependencies from https://github.com/dotnet/razor build 20240904.3 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24454.2 -> To Version 9.0.0-preview.24454.3 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 889f28c30340..22fa280c0ae9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/razor - 90b1855f86ea6da0b70c1e26031ed8b3004bc463 + de7eddc0e99bbae2c131e3eb6a861a6a194337d9 - + https://github.com/dotnet/razor - 90b1855f86ea6da0b70c1e26031ed8b3004bc463 + de7eddc0e99bbae2c131e3eb6a861a6a194337d9 - + https://github.com/dotnet/razor - 90b1855f86ea6da0b70c1e26031ed8b3004bc463 + de7eddc0e99bbae2c131e3eb6a861a6a194337d9 - + https://github.com/dotnet/razor - 90b1855f86ea6da0b70c1e26031ed8b3004bc463 + de7eddc0e99bbae2c131e3eb6a861a6a194337d9 diff --git a/eng/Versions.props b/eng/Versions.props index 9d46cb75a5eb..0980516779b0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24454.2 - 9.0.0-preview.24454.2 - 9.0.0-preview.24454.2 + 9.0.0-preview.24454.3 + 9.0.0-preview.24454.3 + 9.0.0-preview.24454.3 From 56bd4dd195577e3ee6d082e436e2824956efddb5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 4 Sep 2024 23:01:52 +0000 Subject: [PATCH 161/209] Update dependencies from https://github.com/dotnet/razor build 20240904.4 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24454.3 -> To Version 9.0.0-preview.24454.4 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 22fa280c0ae9..e0d076e9b8be 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/razor - de7eddc0e99bbae2c131e3eb6a861a6a194337d9 + 148d71a9a319ea929c938ae3ba691a460cf63b5c - + https://github.com/dotnet/razor - de7eddc0e99bbae2c131e3eb6a861a6a194337d9 + 148d71a9a319ea929c938ae3ba691a460cf63b5c - + https://github.com/dotnet/razor - de7eddc0e99bbae2c131e3eb6a861a6a194337d9 + 148d71a9a319ea929c938ae3ba691a460cf63b5c - + https://github.com/dotnet/razor - de7eddc0e99bbae2c131e3eb6a861a6a194337d9 + 148d71a9a319ea929c938ae3ba691a460cf63b5c diff --git a/eng/Versions.props b/eng/Versions.props index 0980516779b0..8ff471a82b67 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24454.3 - 9.0.0-preview.24454.3 - 9.0.0-preview.24454.3 + 9.0.0-preview.24454.4 + 9.0.0-preview.24454.4 + 9.0.0-preview.24454.4 From fb9368de841e57fc144683ee22b5b36c1af9d143 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 00:42:40 +0000 Subject: [PATCH 162/209] Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240904.1 Microsoft.SourceBuild.Intermediate.roslyn-analyzers , Microsoft.CodeAnalysis.NetAnalyzers , Microsoft.CodeAnalysis.PublicApiAnalyzers From Version 3.11.0-beta1.24425.2 -> To Version 3.11.0-beta1.24454.1 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d675fa4ccf41..8caf6705f06b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -404,18 +404,18 @@ c2a9df9c1867454039a1223cef1c090359e33646 - + https://github.com/dotnet/roslyn-analyzers - 930872ad8817ff59fbb4454e79edf738904d173a + a7c74cf887abe4a38240bc4ead0b221d9d42434f - + https://github.com/dotnet/roslyn-analyzers - 930872ad8817ff59fbb4454e79edf738904d173a + a7c74cf887abe4a38240bc4ead0b221d9d42434f - + https://github.com/dotnet/roslyn-analyzers - 930872ad8817ff59fbb4454e79edf738904d173a + a7c74cf887abe4a38240bc4ead0b221d9d42434f diff --git a/eng/Versions.props b/eng/Versions.props index 8b6bf5178ac7..51cf11384490 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -194,8 +194,8 @@ - 9.0.0-preview.24425.2 - 3.11.0-beta1.24425.2 + 9.0.0-preview.24454.1 + 3.11.0-beta1.24454.1 From c1ed0eeb7a53489b86795ae0b7ab849975fb281b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 01:27:06 +0000 Subject: [PATCH 163/209] Update dependencies from https://github.com/dotnet/razor build 20240904.7 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24454.4 -> To Version 9.0.0-preview.24454.7 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e0d076e9b8be..7f59fa966d62 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/razor - 148d71a9a319ea929c938ae3ba691a460cf63b5c + 6718dbcb40150ead03b0e962a3aec9f153586d8f - + https://github.com/dotnet/razor - 148d71a9a319ea929c938ae3ba691a460cf63b5c + 6718dbcb40150ead03b0e962a3aec9f153586d8f - + https://github.com/dotnet/razor - 148d71a9a319ea929c938ae3ba691a460cf63b5c + 6718dbcb40150ead03b0e962a3aec9f153586d8f - + https://github.com/dotnet/razor - 148d71a9a319ea929c938ae3ba691a460cf63b5c + 6718dbcb40150ead03b0e962a3aec9f153586d8f diff --git a/eng/Versions.props b/eng/Versions.props index 8ff471a82b67..7783885d33e2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24454.4 - 9.0.0-preview.24454.4 - 9.0.0-preview.24454.4 + 9.0.0-preview.24454.7 + 9.0.0-preview.24454.7 + 9.0.0-preview.24454.7 From 88abc00634523a2d1902718a008c639ccf927726 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 02:51:16 +0000 Subject: [PATCH 164/209] Update dependencies from https://github.com/dotnet/razor build 20240904.8 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24454.7 -> To Version 9.0.0-preview.24454.8 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7f59fa966d62..838c5d795607 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/razor - 6718dbcb40150ead03b0e962a3aec9f153586d8f + fbf8c8ef4d0d2465c44b2bec873027519569143d - + https://github.com/dotnet/razor - 6718dbcb40150ead03b0e962a3aec9f153586d8f + fbf8c8ef4d0d2465c44b2bec873027519569143d - + https://github.com/dotnet/razor - 6718dbcb40150ead03b0e962a3aec9f153586d8f + fbf8c8ef4d0d2465c44b2bec873027519569143d - + https://github.com/dotnet/razor - 6718dbcb40150ead03b0e962a3aec9f153586d8f + fbf8c8ef4d0d2465c44b2bec873027519569143d diff --git a/eng/Versions.props b/eng/Versions.props index 7783885d33e2..0e2d7433941d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24454.7 - 9.0.0-preview.24454.7 - 9.0.0-preview.24454.7 + 9.0.0-preview.24454.8 + 9.0.0-preview.24454.8 + 9.0.0-preview.24454.8 From 24a9fa45e7ada6c8f35dcba2a97ceb5fca208056 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 08:42:50 +0000 Subject: [PATCH 165/209] Update dependencies from https://github.com/dotnet/razor build 20240905.1 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24454.8 -> To Version 9.0.0-preview.24455.1 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 838c5d795607..e3c768c14aaa 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/razor - fbf8c8ef4d0d2465c44b2bec873027519569143d + dde7fe8c2f3c2be154c631d281256cd153a0089e - + https://github.com/dotnet/razor - fbf8c8ef4d0d2465c44b2bec873027519569143d + dde7fe8c2f3c2be154c631d281256cd153a0089e - + https://github.com/dotnet/razor - fbf8c8ef4d0d2465c44b2bec873027519569143d + dde7fe8c2f3c2be154c631d281256cd153a0089e - + https://github.com/dotnet/razor - fbf8c8ef4d0d2465c44b2bec873027519569143d + dde7fe8c2f3c2be154c631d281256cd153a0089e diff --git a/eng/Versions.props b/eng/Versions.props index 0e2d7433941d..70904fdf80ee 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24454.8 - 9.0.0-preview.24454.8 - 9.0.0-preview.24454.8 + 9.0.0-preview.24455.1 + 9.0.0-preview.24455.1 + 9.0.0-preview.24455.1 From 56ef212e1ab39917d1507c01394f5efce5893237 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 11:26:33 +0000 Subject: [PATCH 166/209] Update dependencies from https://github.com/nuget/nuget.client build 6.12.0.93 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 From Version 6.12.0-preview.1.90 -> To Version 6.12.0-rc.93 --- eng/Version.Details.xml | 68 ++++++++++++++++++++--------------------- eng/Versions.props | 24 +++++++-------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a7dfc291b120..bda7b4ae125d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -139,74 +139,74 @@ https://github.com/dotnet/aspnetcore 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 - + https://github.com/nuget/nuget.client - 8285b74c46ce9f01b1111c181bac535bc26aa9e0 + f929a0f74b92c3593521a4556d41d6f96528fb24 https://github.com/microsoft/vstest diff --git a/eng/Versions.props b/eng/Versions.props index a74d3ea63b77..d398c6390791 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -173,18 +173,18 @@ - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 - 6.12.0-preview.1.90 + 6.12.0-rc.93 + 6.12.0-rc.93 + 6.12.0-rc.93 + 6.12.0-rc.93 + 6.12.0-rc.93 + 6.12.0-rc.93 + 6.12.0-rc.93 + 6.12.0-rc.93 + 6.12.0-rc.93 + 6.12.0-rc.93 + 6.12.0-rc.93 + 6.12.0-rc.93 From 28f3c3cea6c6953763c12d306db6623283c53371 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 12:15:30 +0000 Subject: [PATCH 167/209] Update dependencies from https://github.com/microsoft/vstest build 20240905.2 Microsoft.NET.Test.Sdk , Microsoft.TestPlatform.Build , Microsoft.TestPlatform.CLI From Version 17.11.0-release-24373-02 -> To Version 17.11.1-release-24455-02 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a00f0e239956..8f0f12e61882 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -187,18 +187,18 @@ https://github.com/nuget/nuget.client c0d441fc5e99e6765c9e0b2f77de162b9866b305 - + https://github.com/microsoft/vstest - c6ad3e3fa4120fb32c8a48bab4fa478adfdb2740 + 7855c9b221686104532ebf3380f2d45b3613b369 - + https://github.com/microsoft/vstest - c6ad3e3fa4120fb32c8a48bab4fa478adfdb2740 + 7855c9b221686104532ebf3380f2d45b3613b369 - + https://github.com/microsoft/vstest - c6ad3e3fa4120fb32c8a48bab4fa478adfdb2740 + 7855c9b221686104532ebf3380f2d45b3613b369 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 522af07b3891..c4aef45f733b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -102,9 +102,9 @@ - 17.11.0-release-24373-02 - 17.11.0-release-24373-02 - 17.11.0-release-24373-02 + 17.11.1-release-24455-02 + 17.11.1-release-24455-02 + 17.11.1-release-24455-02 From 83f3683fdbe099772e938e7811bcb90e9c73fe40 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 12:18:11 +0000 Subject: [PATCH 168/209] Update dependencies from https://github.com/dotnet/roslyn build 20240905.2 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.12.0-3.24453.6 -> To Version 4.12.0-3.24455.2 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d0167685a9ea..0e8477644420 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 20cca61a546fe378948f0550a0026ec6077c1600 - + https://github.com/dotnet/roslyn - 077642f1000b5cf3ab3e31c3cb4f289d5190db33 + 71134f1b17d43044c7d949a2ef161a6b16dee40a - + https://github.com/dotnet/roslyn - 077642f1000b5cf3ab3e31c3cb4f289d5190db33 + 71134f1b17d43044c7d949a2ef161a6b16dee40a - + https://github.com/dotnet/roslyn - 077642f1000b5cf3ab3e31c3cb4f289d5190db33 + 71134f1b17d43044c7d949a2ef161a6b16dee40a - + https://github.com/dotnet/roslyn - 077642f1000b5cf3ab3e31c3cb4f289d5190db33 + 71134f1b17d43044c7d949a2ef161a6b16dee40a - + https://github.com/dotnet/roslyn - 077642f1000b5cf3ab3e31c3cb4f289d5190db33 + 71134f1b17d43044c7d949a2ef161a6b16dee40a - + https://github.com/dotnet/roslyn - 077642f1000b5cf3ab3e31c3cb4f289d5190db33 + 71134f1b17d43044c7d949a2ef161a6b16dee40a - + https://github.com/dotnet/roslyn - 077642f1000b5cf3ab3e31c3cb4f289d5190db33 + 71134f1b17d43044c7d949a2ef161a6b16dee40a - + https://github.com/dotnet/roslyn - 077642f1000b5cf3ab3e31c3cb4f289d5190db33 + 71134f1b17d43044c7d949a2ef161a6b16dee40a - + https://github.com/dotnet/roslyn - 077642f1000b5cf3ab3e31c3cb4f289d5190db33 + 71134f1b17d43044c7d949a2ef161a6b16dee40a https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 2ff9f8858fc3..2fa242b0c9ad 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,14 +235,14 @@ - 4.12.0-3.24453.6 - 4.12.0-3.24453.6 - 4.12.0-3.24453.6 - 4.12.0-3.24453.6 - 4.12.0-3.24453.6 - 4.12.0-3.24453.6 - 4.12.0-3.24453.6 - 4.12.0-3.24453.6 + 4.12.0-3.24455.2 + 4.12.0-3.24455.2 + 4.12.0-3.24455.2 + 4.12.0-3.24455.2 + 4.12.0-3.24455.2 + 4.12.0-3.24455.2 + 4.12.0-3.24455.2 + 4.12.0-3.24455.2 From 2058b0660e74b73483c9f98f5c59bb68be689e42 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 12:18:45 +0000 Subject: [PATCH 169/209] Update dependencies from https://github.com/dotnet/msbuild build 20240905.1 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.12.0-preview-24453-07 -> To Version 17.12.0-preview-24455-01 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6e58a4821780..29406a0ceea4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -69,18 +69,18 @@ 84d642485896a97e0e443be75345c6bb1469a338 - + https://github.com/dotnet/msbuild - 7cf66090a764f0f239671e4877255efe7ba91155 + bab5f9f04ad2ecd45dd25687a660ff10f5778a91 - + https://github.com/dotnet/msbuild - 7cf66090a764f0f239671e4877255efe7ba91155 + bab5f9f04ad2ecd45dd25687a660ff10f5778a91 - + https://github.com/dotnet/msbuild - 7cf66090a764f0f239671e4877255efe7ba91155 + bab5f9f04ad2ecd45dd25687a660ff10f5778a91 diff --git a/eng/Versions.props b/eng/Versions.props index f5d0a1d8b362..2d37faa236e4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -212,8 +212,8 @@ then use that in Directory.Packages.props. At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. --> - 17.12.0-preview-24453-07 - 17.12.0-preview-24453-07 + 17.12.0-preview-24455-01 + 17.12.0-preview-24455-01 $([System.IO.File]::ReadAllText('$(RepoRoot)src\Layout\redist\minimumMSBuildVersion').Trim()) From 460a085580a2730d9c0d995ce37211381e600812 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 12:19:59 +0000 Subject: [PATCH 170/209] Update dependencies from https://github.com/dotnet/sourcelink build 20240904.2 Microsoft.SourceBuild.Intermediate.sourcelink , Microsoft.Build.Tasks.Git , Microsoft.SourceLink.AzureRepos.Git , Microsoft.SourceLink.Bitbucket.Git , Microsoft.SourceLink.Common , Microsoft.SourceLink.GitHub , Microsoft.SourceLink.GitLab From Version 9.0.0-beta.24452.2 -> To Version 9.0.0-beta.24454.2 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d675fa4ccf41..30681e13300d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -456,34 +456,34 @@ https://github.com/dotnet/deployment-tools 7871ee378dce87b64d930d4f33dca9c888f4034d - + https://github.com/dotnet/sourcelink - 19b29a3cefcc2cd39de466bd36662f9830ed70da + 4b7a0143200c4f75845471f54e47b983f29fce4b - + https://github.com/dotnet/sourcelink - 19b29a3cefcc2cd39de466bd36662f9830ed70da + 4b7a0143200c4f75845471f54e47b983f29fce4b - + https://github.com/dotnet/sourcelink - 19b29a3cefcc2cd39de466bd36662f9830ed70da + 4b7a0143200c4f75845471f54e47b983f29fce4b - + https://github.com/dotnet/sourcelink - 19b29a3cefcc2cd39de466bd36662f9830ed70da + 4b7a0143200c4f75845471f54e47b983f29fce4b - + https://github.com/dotnet/sourcelink - 19b29a3cefcc2cd39de466bd36662f9830ed70da + 4b7a0143200c4f75845471f54e47b983f29fce4b - + https://github.com/dotnet/sourcelink - 19b29a3cefcc2cd39de466bd36662f9830ed70da + 4b7a0143200c4f75845471f54e47b983f29fce4b - + https://github.com/dotnet/sourcelink - 19b29a3cefcc2cd39de466bd36662f9830ed70da + 4b7a0143200c4f75845471f54e47b983f29fce4b diff --git a/eng/Versions.props b/eng/Versions.props index 8b6bf5178ac7..e8f828f87f8a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -320,12 +320,12 @@ - 9.0.0-beta.24452.2 - 9.0.0-beta.24452.2 - 9.0.0-beta.24452.2 - 9.0.0-beta.24452.2 - 9.0.0-beta.24452.2 - 9.0.0-beta.24452.2 + 9.0.0-beta.24454.2 + 9.0.0-beta.24454.2 + 9.0.0-beta.24454.2 + 9.0.0-beta.24454.2 + 9.0.0-beta.24454.2 + 9.0.0-beta.24454.2 From 8c5a0362a7604b11a298a4f1d2570a87b1a1bd60 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 12:20:52 +0000 Subject: [PATCH 171/209] Update dependencies from https://github.com/dotnet/runtime build 20240904.7 Microsoft.Bcl.AsyncInterfaces , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.SystemEvents , System.CodeDom , System.Composition.AttributedModel , System.Composition.Convention , System.Composition.Hosting , System.Composition.Runtime , System.Composition.TypedParts , System.Configuration.ConfigurationManager , System.Formats.Asn1 , 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 , VS.Redist.Common.NetCore.SharedFramework.x64.9.0 , VS.Redist.Common.NetCore.TargetingPack.x64.9.0 , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.0-rc.2.24453.5 -> To Version 9.0.0-rc.2.24454.7 Dependency coherency updates Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport,Microsoft.SourceBuild.Intermediate.emsdk From Version 9.0.0-rc.2.24422.4 -> To Version 9.0.0-rc.2.24453.3 (parent: Microsoft.NETCore.App.Runtime.win-x64 --- eng/Version.Details.xml | 148 ++++++++++++++++++++-------------------- eng/Versions.props | 70 +++++++++---------- 2 files changed, 109 insertions(+), 109 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 59b8535a7be3..0f1cbbe58e1a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,42 +15,42 @@ 133c2a92258a1d4047eb077e39aa82b445dd57f5 - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef @@ -59,14 +59,14 @@ https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - + https://github.com/dotnet/emsdk - 84d642485896a97e0e443be75345c6bb1469a338 + c136d56093029c7dc696fd9cc15a4381077390f4 - + https://github.com/dotnet/emsdk - 84d642485896a97e0e443be75345c6bb1469a338 + c136d56093029c7dc696fd9cc15a4381077390f4 @@ -226,29 +226,29 @@ 07acde22b65497e72de145d57167b83609a7f7fb - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef https://github.com/dotnet/windowsdesktop @@ -499,89 +499,89 @@ - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef https://github.com/dotnet/aspnetcore 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef @@ -615,9 +615,9 @@ d21db44e84b9038ea7b2add139adee2303d46800 - + https://github.com/dotnet/runtime - 31528d082bd760377b8d818fc839a338cd071b1f + af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index f9954aa73ac8..06bb7572f9cd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,47 +122,47 @@ - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 8.0.0-rc.1.23414.4 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 2.1.0 - 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24454.7 8.0.0 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 8.0.0 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 8.0.4 - 9.0.0-rc.2.24453.5 - 9.0.0-rc.2.24453.5 + 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24454.7 @@ -360,7 +360,7 @@ 14.2.9714-net9-p6 17.2.9714-net9-p6 - 9.0.0-rc.2.24422.4 + 9.0.0-rc.2.24453.3 $(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion) 9.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[A-z]*[\.]*\d*`)) From 87a0954416c18044eae9231df9ee17e49c8dc09e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 13:02:16 +0000 Subject: [PATCH 172/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240905.1 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24454.1 -> To Version 9.0.0-rc.2.24455.1 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates From Version 9.0.0-rc.2.24451.8 -> To Version 9.0.0-rc.2.24454.8 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f5419cfa4720..9c032eeff0e9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,26 +250,26 @@ https://github.com/dotnet/runtime d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/windowsdesktop - 62e8f0165e9aef8589ed419f821c0b93bfc3a76c + 04e8e1dd8b7360a4a084cf53f02d9d3e82fc65b5 - + https://github.com/dotnet/windowsdesktop - 62e8f0165e9aef8589ed419f821c0b93bfc3a76c + 04e8e1dd8b7360a4a084cf53f02d9d3e82fc65b5 - + https://github.com/dotnet/windowsdesktop - 62e8f0165e9aef8589ed419f821c0b93bfc3a76c + 04e8e1dd8b7360a4a084cf53f02d9d3e82fc65b5 - + https://github.com/dotnet/windowsdesktop - 62e8f0165e9aef8589ed419f821c0b93bfc3a76c + 04e8e1dd8b7360a4a084cf53f02d9d3e82fc65b5 - + https://github.com/dotnet/wpf - 4bbee6591a871580d0ad50ec0191220c24544915 + 8efcd1c12339a5b9260cdccf3db5c47d82666943 https://github.com/dotnet/aspnetcore @@ -386,13 +386,13 @@ - + https://github.com/dotnet/winforms - 7d8d28254a994996518d78895d5d32a96ed56aaf + 40a1a9b1354ab607a71b489d07ce54870cb8cd13 - + https://github.com/dotnet/wpf - 4bbee6591a871580d0ad50ec0191220c24544915 + 8efcd1c12339a5b9260cdccf3db5c47d82666943 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index c6896178ff41..57ed36dc874a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -111,7 +111,7 @@ - 9.0.0-rc.2.24430.3 + 9.0.0-rc.2.24454.3 @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24454.1 - 9.0.0-rc.2.24454.1 - 9.0.0-rc.2.24454.1 - 9.0.0-rc.2.24454.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 @@ -268,8 +268,8 @@ - 9.0.0-rc.2.24451.8 - 9.0.0-rc.2.24451.8 + 9.0.0-rc.2.24454.8 + 9.0.0-rc.2.24454.8 From f13d05f557aa091071e31949979fe673bec38005 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 13:04:07 +0000 Subject: [PATCH 173/209] Update dependencies from https://github.com/dotnet/aspnetcore build 20240905.1 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 9.0.0-rc.2.24453.17 -> To Version 9.0.0-rc.2.24455.1 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a04241063a72..5e19ff43d8f1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -131,13 +131,13 @@ https://github.com/dotnet/roslyn c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 https://github.com/nuget/nuget.client @@ -271,54 +271,54 @@ https://github.com/dotnet/wpf 4bbee6591a871580d0ad50ec0191220c24544915 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 @@ -339,21 +339,21 @@ 8bddfe9971d754f736d360f16a340e2a8e3e2c55 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 https://github.com/dotnet/test-templates @@ -535,9 +535,9 @@ https://github.com/dotnet/runtime d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/aspnetcore - b4a37b11c6a29a19f2015de0d0818c3f8f2d35e6 + fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 2ef4c78c8650..76a172f76450 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -246,19 +246,19 @@ - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 - 9.0.0-rc.2.24453.17 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.1 From 355ab94f2c1c6fa5c8bb7d8480c2329b0aa091cf Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 5 Sep 2024 20:01:06 +0000 Subject: [PATCH 174/209] Update dependencies from https://github.com/dotnet/aspnetcore build 20240905.6 dotnet-dev-certs , dotnet-user-jwts , dotnet-user-secrets , Microsoft.AspNetCore.Analyzers , Microsoft.AspNetCore.App.Ref , Microsoft.AspNetCore.App.Ref.Internal , Microsoft.AspNetCore.App.Runtime.win-x64 , Microsoft.AspNetCore.Authorization , Microsoft.AspNetCore.Components.SdkAnalyzers , Microsoft.AspNetCore.Components.Web , Microsoft.AspNetCore.DeveloperCertificates.XPlat , Microsoft.AspNetCore.Mvc.Analyzers , Microsoft.AspNetCore.Mvc.Api.Analyzers , Microsoft.AspNetCore.TestHost , Microsoft.Extensions.FileProviders.Embedded , Microsoft.Extensions.ObjectPool , Microsoft.JSInterop , VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0 , Microsoft.SourceBuild.Intermediate.aspnetcore From Version 9.0.0-rc.2.24455.1 -> To Version 9.0.0-rc.2.24455.6 --- eng/Version.Details.xml | 76 ++++++++++++++++++++--------------------- eng/Versions.props | 26 +++++++------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5e19ff43d8f1..557ae768179a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -131,13 +131,13 @@ https://github.com/dotnet/roslyn c6a0795ce110a904bf7d706a70335f7579390833 - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc https://github.com/nuget/nuget.client @@ -271,54 +271,54 @@ https://github.com/dotnet/wpf 4bbee6591a871580d0ad50ec0191220c24544915 - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc @@ -339,21 +339,21 @@ 8bddfe9971d754f736d360f16a340e2a8e3e2c55 - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc https://github.com/dotnet/test-templates @@ -535,9 +535,9 @@ https://github.com/dotnet/runtime d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/aspnetcore - fd611722ee8bccfd9beb4f1bd91f61884ad2d4c3 + 07da5601559ba66827c1b89ada58ff9d2ea676bc https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 76a172f76450..186d0a52cd88 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -246,19 +246,19 @@ - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 + 9.0.0-rc.2.24455.6 From a8cbd6f84bb75a6fe8f2a7c78341e7522b8187c8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 6 Sep 2024 00:47:25 +0000 Subject: [PATCH 175/209] Update dependencies from https://github.com/dotnet/razor build 20240905.2 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24455.1 -> To Version 9.0.0-preview.24455.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e3c768c14aaa..e13b4bf63cbe 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 2b865e33f2c7c9484c28a3b62e8ff07966e23434 - + https://github.com/dotnet/razor - dde7fe8c2f3c2be154c631d281256cd153a0089e + fdda4bbae9261f96d1eb15cca92566c7bf5792c4 - + https://github.com/dotnet/razor - dde7fe8c2f3c2be154c631d281256cd153a0089e + fdda4bbae9261f96d1eb15cca92566c7bf5792c4 - + https://github.com/dotnet/razor - dde7fe8c2f3c2be154c631d281256cd153a0089e + fdda4bbae9261f96d1eb15cca92566c7bf5792c4 - + https://github.com/dotnet/razor - dde7fe8c2f3c2be154c631d281256cd153a0089e + fdda4bbae9261f96d1eb15cca92566c7bf5792c4 diff --git a/eng/Versions.props b/eng/Versions.props index 70904fdf80ee..a4e78ea8745b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24455.1 - 9.0.0-preview.24455.1 - 9.0.0-preview.24455.1 + 9.0.0-preview.24455.2 + 9.0.0-preview.24455.2 + 9.0.0-preview.24455.2 From b64ab99e2d6d40b95dfef70096542d2e25a1d25c Mon Sep 17 00:00:00 2001 From: Matt Thalman Date: Fri, 6 Sep 2024 07:42:35 -0500 Subject: [PATCH 176/209] [release/9.0.1xx] Cloak sRGB.icm from VMR (#43249) --- src/VirtualMonoRepo/source-mappings.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/VirtualMonoRepo/source-mappings.json b/src/VirtualMonoRepo/source-mappings.json index 2b9acce26e6d..6fc3b157e9e4 100644 --- a/src/VirtualMonoRepo/source-mappings.json +++ b/src/VirtualMonoRepo/source-mappings.json @@ -199,7 +199,11 @@ }, { "name": "wpf", - "defaultRemote": "https://github.com/dotnet/wpf" + "defaultRemote": "https://github.com/dotnet/wpf", + "exclude": [ + // Non-OSS license - https://github.com/dotnet/source-build/issues/4590 + "src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Resources/ColorProfiles/sRGB.icm" + ] }, { "name": "windowsdesktop", From ad054f0c395941960a531808ce27e28e320e3a75 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 6 Sep 2024 12:49:19 +0000 Subject: [PATCH 177/209] Update dependencies from https://github.com/dotnet/roslyn build 20240906.1 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.12.0-3.24455.2 -> To Version 4.12.0-3.24456.1 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0e8477644420..0a0ff6f03bae 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 20cca61a546fe378948f0550a0026ec6077c1600 - + https://github.com/dotnet/roslyn - 71134f1b17d43044c7d949a2ef161a6b16dee40a + 1ce264cab372119376a734a247e9f60fe898877a - + https://github.com/dotnet/roslyn - 71134f1b17d43044c7d949a2ef161a6b16dee40a + 1ce264cab372119376a734a247e9f60fe898877a - + https://github.com/dotnet/roslyn - 71134f1b17d43044c7d949a2ef161a6b16dee40a + 1ce264cab372119376a734a247e9f60fe898877a - + https://github.com/dotnet/roslyn - 71134f1b17d43044c7d949a2ef161a6b16dee40a + 1ce264cab372119376a734a247e9f60fe898877a - + https://github.com/dotnet/roslyn - 71134f1b17d43044c7d949a2ef161a6b16dee40a + 1ce264cab372119376a734a247e9f60fe898877a - + https://github.com/dotnet/roslyn - 71134f1b17d43044c7d949a2ef161a6b16dee40a + 1ce264cab372119376a734a247e9f60fe898877a - + https://github.com/dotnet/roslyn - 71134f1b17d43044c7d949a2ef161a6b16dee40a + 1ce264cab372119376a734a247e9f60fe898877a - + https://github.com/dotnet/roslyn - 71134f1b17d43044c7d949a2ef161a6b16dee40a + 1ce264cab372119376a734a247e9f60fe898877a - + https://github.com/dotnet/roslyn - 71134f1b17d43044c7d949a2ef161a6b16dee40a + 1ce264cab372119376a734a247e9f60fe898877a https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 2fa242b0c9ad..fcb89bfab120 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,14 +235,14 @@ - 4.12.0-3.24455.2 - 4.12.0-3.24455.2 - 4.12.0-3.24455.2 - 4.12.0-3.24455.2 - 4.12.0-3.24455.2 - 4.12.0-3.24455.2 - 4.12.0-3.24455.2 - 4.12.0-3.24455.2 + 4.12.0-3.24456.1 + 4.12.0-3.24456.1 + 4.12.0-3.24456.1 + 4.12.0-3.24456.1 + 4.12.0-3.24456.1 + 4.12.0-3.24456.1 + 4.12.0-3.24456.1 + 4.12.0-3.24456.1 From 5fca81fd8142d56263743336b0adcce732470466 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 6 Sep 2024 12:49:47 +0000 Subject: [PATCH 178/209] Update dependencies from https://github.com/dotnet/msbuild build 20240905.2 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.12.0-preview-24455-01 -> To Version 17.12.0-preview-24455-02 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 29406a0ceea4..6c556d75c118 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -69,18 +69,18 @@ 84d642485896a97e0e443be75345c6bb1469a338 - + https://github.com/dotnet/msbuild - bab5f9f04ad2ecd45dd25687a660ff10f5778a91 + b1e6c2512963d41949b5c8e287ca3bb4e9fa2e90 - + https://github.com/dotnet/msbuild - bab5f9f04ad2ecd45dd25687a660ff10f5778a91 + b1e6c2512963d41949b5c8e287ca3bb4e9fa2e90 - + https://github.com/dotnet/msbuild - bab5f9f04ad2ecd45dd25687a660ff10f5778a91 + b1e6c2512963d41949b5c8e287ca3bb4e9fa2e90 diff --git a/eng/Versions.props b/eng/Versions.props index 2d37faa236e4..68ae2a927e8c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -212,8 +212,8 @@ then use that in Directory.Packages.props. At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. --> - 17.12.0-preview-24455-01 - 17.12.0-preview-24455-01 + 17.12.0-preview-24455-02 + 17.12.0-preview-24455-02 $([System.IO.File]::ReadAllText('$(RepoRoot)src\Layout\redist\minimumMSBuildVersion').Trim()) From 3307fbd165544a7eb21d5fcae082cd3d1df304d5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 6 Sep 2024 12:50:55 +0000 Subject: [PATCH 179/209] Update dependencies from https://github.com/dotnet/sourcelink build 20240905.2 Microsoft.SourceBuild.Intermediate.sourcelink , Microsoft.Build.Tasks.Git , Microsoft.SourceLink.AzureRepos.Git , Microsoft.SourceLink.Bitbucket.Git , Microsoft.SourceLink.Common , Microsoft.SourceLink.GitHub , Microsoft.SourceLink.GitLab From Version 9.0.0-beta.24454.2 -> To Version 9.0.0-beta.24455.2 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 30681e13300d..a4ba09d0b69f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -456,34 +456,34 @@ https://github.com/dotnet/deployment-tools 7871ee378dce87b64d930d4f33dca9c888f4034d - + https://github.com/dotnet/sourcelink - 4b7a0143200c4f75845471f54e47b983f29fce4b + 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e - + https://github.com/dotnet/sourcelink - 4b7a0143200c4f75845471f54e47b983f29fce4b + 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e - + https://github.com/dotnet/sourcelink - 4b7a0143200c4f75845471f54e47b983f29fce4b + 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e - + https://github.com/dotnet/sourcelink - 4b7a0143200c4f75845471f54e47b983f29fce4b + 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e - + https://github.com/dotnet/sourcelink - 4b7a0143200c4f75845471f54e47b983f29fce4b + 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e - + https://github.com/dotnet/sourcelink - 4b7a0143200c4f75845471f54e47b983f29fce4b + 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e - + https://github.com/dotnet/sourcelink - 4b7a0143200c4f75845471f54e47b983f29fce4b + 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e diff --git a/eng/Versions.props b/eng/Versions.props index e8f828f87f8a..846bd834ee30 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -320,12 +320,12 @@ - 9.0.0-beta.24454.2 - 9.0.0-beta.24454.2 - 9.0.0-beta.24454.2 - 9.0.0-beta.24454.2 - 9.0.0-beta.24454.2 - 9.0.0-beta.24454.2 + 9.0.0-beta.24455.2 + 9.0.0-beta.24455.2 + 9.0.0-beta.24455.2 + 9.0.0-beta.24455.2 + 9.0.0-beta.24455.2 + 9.0.0-beta.24455.2 From e41c97b5e0e20526fe021366e7e021217d39c597 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 6 Sep 2024 12:51:40 +0000 Subject: [PATCH 180/209] Update dependencies from https://github.com/dotnet/runtime build 20240905.13 Microsoft.Bcl.AsyncInterfaces , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.SystemEvents , System.CodeDom , System.Composition.AttributedModel , System.Composition.Convention , System.Composition.Hosting , System.Composition.Runtime , System.Composition.TypedParts , System.Configuration.ConfigurationManager , System.Formats.Asn1 , 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 , VS.Redist.Common.NetCore.SharedFramework.x64.9.0 , VS.Redist.Common.NetCore.TargetingPack.x64.9.0 , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.0-rc.2.24454.7 -> To Version 9.0.0-rc.2.24455.13 Dependency coherency updates Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport,Microsoft.SourceBuild.Intermediate.emsdk From Version 9.0.0-rc.2.24453.3 -> To Version 9.0.0-rc.2.24454.2 (parent: Microsoft.NETCore.App.Runtime.win-x64 --- eng/Version.Details.xml | 148 ++++++++++++++++++++-------------------- eng/Versions.props | 70 +++++++++---------- 2 files changed, 109 insertions(+), 109 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0f1cbbe58e1a..33cdbc3e6d48 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,42 +15,42 @@ 133c2a92258a1d4047eb077e39aa82b445dd57f5 - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a @@ -59,14 +59,14 @@ https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - + https://github.com/dotnet/emsdk - c136d56093029c7dc696fd9cc15a4381077390f4 + c8026c0932574ddad057e54d983ab8c2ba082b93 - + https://github.com/dotnet/emsdk - c136d56093029c7dc696fd9cc15a4381077390f4 + c8026c0932574ddad057e54d983ab8c2ba082b93 @@ -226,29 +226,29 @@ 07acde22b65497e72de145d57167b83609a7f7fb - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a https://github.com/dotnet/windowsdesktop @@ -499,89 +499,89 @@ - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a https://github.com/dotnet/aspnetcore 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a @@ -615,9 +615,9 @@ d21db44e84b9038ea7b2add139adee2303d46800 - + https://github.com/dotnet/runtime - af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef + 24889f914558a0fa2ce9631788ceaba6936dad8a https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index 06bb7572f9cd..a2e73e4bc4bc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,47 +122,47 @@ - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 8.0.0-rc.1.23414.4 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 2.1.0 - 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24455.13 8.0.0 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 8.0.0 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 8.0.4 - 9.0.0-rc.2.24454.7 - 9.0.0-rc.2.24454.7 + 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24455.13 @@ -360,7 +360,7 @@ 14.2.9714-net9-p6 17.2.9714-net9-p6 - 9.0.0-rc.2.24453.3 + 9.0.0-rc.2.24454.2 $(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion) 9.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[A-z]*[\.]*\d*`)) From ee9a9ab0e0a4f7cf8bf5d710eec69642302dd3c0 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 6 Sep 2024 13:03:09 +0000 Subject: [PATCH 181/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240906.1 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24455.1 -> To Version 9.0.0-rc.2.24456.1 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates From Version 9.0.0-rc.2.24454.8 -> To Version 9.0.0-rc.2.24455.3 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9c032eeff0e9..bc8fba277927 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,26 +250,26 @@ https://github.com/dotnet/runtime d0f3235d312f7cf9683012b3fe96b2c6f20a1743 - + https://github.com/dotnet/windowsdesktop - 04e8e1dd8b7360a4a084cf53f02d9d3e82fc65b5 + db9690feac3a8b01a5b4b5a22440848c3fd263d8 - + https://github.com/dotnet/windowsdesktop - 04e8e1dd8b7360a4a084cf53f02d9d3e82fc65b5 + db9690feac3a8b01a5b4b5a22440848c3fd263d8 - + https://github.com/dotnet/windowsdesktop - 04e8e1dd8b7360a4a084cf53f02d9d3e82fc65b5 + db9690feac3a8b01a5b4b5a22440848c3fd263d8 - + https://github.com/dotnet/windowsdesktop - 04e8e1dd8b7360a4a084cf53f02d9d3e82fc65b5 + db9690feac3a8b01a5b4b5a22440848c3fd263d8 - + https://github.com/dotnet/wpf - 8efcd1c12339a5b9260cdccf3db5c47d82666943 + 7ab4ae3a7bd42b246f086c81f97054b02c5677a1 https://github.com/dotnet/aspnetcore @@ -386,13 +386,13 @@ - + https://github.com/dotnet/winforms - 40a1a9b1354ab607a71b489d07ce54870cb8cd13 + 636c275ebced377ccbe2763a21488f3e9d346c0b - + https://github.com/dotnet/wpf - 8efcd1c12339a5b9260cdccf3db5c47d82666943 + 7ab4ae3a7bd42b246f086c81f97054b02c5677a1 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 57ed36dc874a..73a90f006d1f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -111,7 +111,7 @@ - 9.0.0-rc.2.24454.3 + 9.0.0-rc.2.24455.3 @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 - 9.0.0-rc.2.24455.1 + 9.0.0-rc.2.24456.1 + 9.0.0-rc.2.24456.1 + 9.0.0-rc.2.24456.1 + 9.0.0-rc.2.24456.1 @@ -268,8 +268,8 @@ - 9.0.0-rc.2.24454.8 - 9.0.0-rc.2.24454.8 + 9.0.0-rc.2.24455.3 + 9.0.0-rc.2.24455.3 From c1f5164b689c3293b3da475933132532ab8862f5 Mon Sep 17 00:00:00 2001 From: Michael Yanni Date: Fri, 6 Sep 2024 11:20:19 -0700 Subject: [PATCH 182/209] Change Windows PR build image --- .vsts-pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vsts-pr.yml b/.vsts-pr.yml index 842d852d4a66..9a6868cc78d6 100644 --- a/.vsts-pr.yml +++ b/.vsts-pr.yml @@ -37,7 +37,7 @@ stages: parameters: pool: name: $(DncEngPublicBuildPool) - demands: ImageOverride -equals 1es-windows-2022-open + demands: ImageOverride -equals windows.vs2022preview.scout.amd64.open os: windows helixTargetQueue: windows.amd64.vs2022.pre.open @@ -69,4 +69,4 @@ stages: timeoutInMinutes: 30 ############### DOTNET-FORMAT ############### - - template: /eng/dotnet-format/dotnet-format-integration.yml \ No newline at end of file + - template: /eng/dotnet-format/dotnet-format-integration.yml From 1f24b47be1e0900e74b8abba39016e51e7da4057 Mon Sep 17 00:00:00 2001 From: Michael Yanni Date: Fri, 6 Sep 2024 11:27:40 -0700 Subject: [PATCH 183/209] Change to image with 17.10 on it --- .vsts-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vsts-pr.yml b/.vsts-pr.yml index 9a6868cc78d6..e130dc576aee 100644 --- a/.vsts-pr.yml +++ b/.vsts-pr.yml @@ -37,7 +37,7 @@ stages: parameters: pool: name: $(DncEngPublicBuildPool) - demands: ImageOverride -equals windows.vs2022preview.scout.amd64.open + demands: ImageOverride -equals windows.vs2022.amd64.open os: windows helixTargetQueue: windows.amd64.vs2022.pre.open From 405f13af45d3101dc9d26cb5b65934eeb58df034 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 6 Sep 2024 21:20:09 +0000 Subject: [PATCH 184/209] Update dependencies from https://github.com/dotnet/aspire build 20240906.4 Microsoft.SourceBuild.Intermediate.aspire , Microsoft.NET.Sdk.Aspire.Manifest-8.0.100 From Version 8.1.0-preview.1.24373.2 -> To Version 9.0.0-preview.4.24456.4 --- NuGet.config | 1 - eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/NuGet.config b/NuGet.config index 4073490804d9..b12afe16d5d6 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,6 @@ - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0f1cbbe58e1a..4a670544dc28 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -646,14 +646,14 @@ aren't shipping, or those extensions packages depend on aspnetcore packages that won't ship. However, given the cost of maintaining this coherency path is high. This being toolset means that aspire is responsible for its own coherency. --> - + https://github.com/dotnet/aspire - d304c5f6f15bcd4f34f1841b33870cfab88e6937 + b88ce9e7cb0430fb0b4e2d018f13694a4c733289 - + https://github.com/dotnet/aspire - d304c5f6f15bcd4f34f1841b33870cfab88e6937 + b88ce9e7cb0430fb0b4e2d018f13694a4c733289 diff --git a/eng/Versions.props b/eng/Versions.props index 06bb7572f9cd..b7cf24a405b8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -351,7 +351,7 @@ 8.0.100 - 8.1.0 + 9.0.0-preview.4.24456.4 9.0.100-preview.6 9.0.0-preview.6.24327.7 34.99.0-preview.6.340 From c644d45198762e515d53f8a44f0ca8ab4dbc0cf9 Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Fri, 6 Sep 2024 15:13:27 -0700 Subject: [PATCH 185/209] Add a Locked comment for NETSDK1147 to prevent overlocalization --- src/Tasks/Common/Resources/Strings.resx | 2 +- src/Tasks/Common/Resources/xlf/Strings.cs.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.de.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.es.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.fr.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.it.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.ja.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.ko.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.pl.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.ru.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.tr.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf | 4 ++-- src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf | 4 ++-- 14 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/Tasks/Common/Resources/Strings.resx b/src/Tasks/Common/Resources/Strings.resx index 5d61c56951ac..f31a96bb1c5f 100644 --- a/src/Tasks/Common/Resources/Strings.resx +++ b/src/Tasks/Common/Resources/Strings.resx @@ -693,7 +693,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} NETSDK1148: A referenced assembly was compiled using a newer version of Microsoft.Windows.SDK.NET.dll. Please update to a newer .NET SDK in order to reference this assembly. diff --git a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf index 9af122bb1ccc..128b8fc4bc54 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf @@ -1093,9 +1093,9 @@ Možná bude nutné sestavit projekt v jiném operačním systému nebo architek NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: k sestavení tohoto projektu musí být nainstalované následující úlohy: {0} + NETSDK1147: k sestavení tohoto projektu musí být nainstalované následující úlohy: {0} Pokud chcete nainstalovat tyto úlohy, spusťte následující příkaz: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.de.xlf b/src/Tasks/Common/Resources/xlf/Strings.de.xlf index 5daf23e40273..b319e85e9ee6 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.de.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.de.xlf @@ -1093,9 +1093,9 @@ Sie müssen das Projekt möglicherweise unter einem anderen Betriebssystem oder NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: Zum Erstellen dieses Projekts müssen die folgenden Workloads installiert sein: {0} + NETSDK1147: Zum Erstellen dieses Projekts müssen die folgenden Workloads installiert sein: {0} Führen Sie den folgenden Befehl aus, um diese Workloads zu installieren: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.es.xlf b/src/Tasks/Common/Resources/xlf/Strings.es.xlf index 1c900be6713d..edad3708fcdd 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.es.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.es.xlf @@ -1093,9 +1093,9 @@ Puede que necesite compilar el proyecto en otro sistema operativo o arquitectura NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: para compilar este proyecto, deben estar instaladas las siguientes cargas de trabajo: {0} + NETSDK1147: para compilar este proyecto, deben estar instaladas las siguientes cargas de trabajo: {0} Para instalar estas cargas de trabajo, ejecute el comando siguiente: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf index 823fd6eee61b..e59663beb581 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf @@ -1093,9 +1093,9 @@ Vous devrez peut-être générer le projet sur un autre système d’exploitatio NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: pour générer ce projet, les charges de travail suivantes doivent être installées : {0} + NETSDK1147: pour générer ce projet, les charges de travail suivantes doivent être installées : {0} Pour installer ces charges de travail, exécutez la commande suivante : restauration de la charge de travail de dotnet. - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.it.xlf b/src/Tasks/Common/Resources/xlf/Strings.it.xlf index 37a4ea08465e..e8e8a53aa3bd 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.it.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.it.xlf @@ -1093,9 +1093,9 @@ Potrebbe essere necessario compilare il progetto in un altro sistema operativo o NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: per compilare questo progetto devono essere installati i seguenti carichi di lavoro: {0} + NETSDK1147: per compilare questo progetto devono essere installati i seguenti carichi di lavoro: {0} Per installare questi carichi di lavoro, eseguire il seguente comando: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf index 5ff604793cc8..8065c7473e4f 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf @@ -1093,9 +1093,9 @@ You may need to build the project on another operating system or architecture, o NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: このプロジェクトをビルドするには、次のワークロードをインストールする必要があります: {0} + NETSDK1147: このプロジェクトをビルドするには、次のワークロードをインストールする必要があります: {0} これらのワークロードをインストールするには、次のコマンドを実行します: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf index d4ec790feb25..3047dcb4993b 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf @@ -1093,9 +1093,9 @@ You may need to build the project on another operating system or architecture, o NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: 이 프로젝트를 빌드하려면 다음 워크로드를 설치해야 합니다. {0} + NETSDK1147: 이 프로젝트를 빌드하려면 다음 워크로드를 설치해야 합니다. {0} 이러한 워크로드를 설치하려면 dotnet workload restore 명령을 실행합니다. - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf index bfcddc22f639..53b12224e08f 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf @@ -1093,9 +1093,9 @@ Może być konieczne skompilowanie projektu w innym systemie operacyjnym lub arc NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: aby utworzyć ten projekt, muszą być zainstalowane następujące pakiety robocze: {0} + NETSDK1147: aby utworzyć ten projekt, muszą być zainstalowane następujące pakiety robocze: {0} Aby zainstalować te pakiety robocze, uruchom następujące polecenie: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf index a772aef9eca7..936634602c4a 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf @@ -1093,10 +1093,10 @@ Talvez você precise compilar o projeto em outro sistema operacional ou arquitet NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: Para criar este projeto, as seguintes cargas de trabalho devem ser instaladas: {0} + NETSDK1147: Para criar este projeto, as seguintes cargas de trabalho devem ser instaladas: {0} Para instalar essas cargas de trabalho, execute o seguinte comando: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf index af1579d08057..67104d28658d 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf @@ -1093,9 +1093,9 @@ You may need to build the project on another operating system or architecture, o NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: для сборки этого проекта необходимо установить следующие рабочие нагрузки: {0} + NETSDK1147: для сборки этого проекта необходимо установить следующие рабочие нагрузки: {0} Чтобы установить эти рабочие нагрузки, выполните следующую команду: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf index 42062ee8e07c..5f4b8e521309 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf @@ -1093,9 +1093,9 @@ Projeyi başka bir işletim sisteminde veya mimaride oluşturmanız veya .NET SD NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: Bu projeyi oluşturmak için şu iş yüklerinin yüklenmesi gerekiyor: {0} + NETSDK1147: Bu projeyi oluşturmak için şu iş yüklerinin yüklenmesi gerekiyor: {0} Bu iş yüklerini yüklemek için şu komutu çalıştırın: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf index e259ba8ae8e0..c8ad79086b25 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf @@ -1093,9 +1093,9 @@ You may need to build the project on another operating system or architecture, o NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: 要构建此项目,必须安装以下工作负载: {0} + NETSDK1147: 要构建此项目,必须安装以下工作负载: {0} 要安装这些工作负载,请运行以下命令: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf index e635e095d1f9..38ade700e80d 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf @@ -1093,9 +1093,9 @@ You may need to build the project on another operating system or architecture, o NETSDK1147: To build this project, the following workloads must be installed: {0} To install these workloads, run the following command: dotnet workload restore - NETSDK1147: 若要建立此專案,必須安裝下列工作負載: {0} + NETSDK1147: 若要建立此專案,必須安裝下列工作負載: {0} 若要安裝這些工作負載,請執行下列命令: dotnet workload restore - {StrBegin="NETSDK1147: "} LOCALIZATION: Do not localize "dotnet workload restore" + {StrBegin="NETSDK1147: "}{Locked="dotnet workload restore"} From b89f2fb7a03febd111dcc4896f544d9c92cc06e7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 7 Sep 2024 11:28:15 +0000 Subject: [PATCH 186/209] Update dependencies from https://github.com/nuget/nuget.client build 6.12.0.94 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 From Version 6.12.0-rc.93 -> To Version 6.12.0-rc.94 --- eng/Version.Details.xml | 68 ++++++++++++++++++++--------------------- eng/Versions.props | 24 +++++++-------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 84e9fe3c8d64..870429e59619 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -139,74 +139,74 @@ https://github.com/dotnet/aspnetcore 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 - + https://github.com/nuget/nuget.client - f929a0f74b92c3593521a4556d41d6f96528fb24 + 5d08fbd496ee2ce63b50dfe0803edbd9701e1b35 https://github.com/microsoft/vstest diff --git a/eng/Versions.props b/eng/Versions.props index c05689eca228..cbc71b116cd2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -173,18 +173,18 @@ - 6.12.0-rc.93 - 6.12.0-rc.93 - 6.12.0-rc.93 - 6.12.0-rc.93 - 6.12.0-rc.93 - 6.12.0-rc.93 - 6.12.0-rc.93 - 6.12.0-rc.93 - 6.12.0-rc.93 - 6.12.0-rc.93 - 6.12.0-rc.93 - 6.12.0-rc.93 + 6.12.0-rc.94 + 6.12.0-rc.94 + 6.12.0-rc.94 + 6.12.0-rc.94 + 6.12.0-rc.94 + 6.12.0-rc.94 + 6.12.0-rc.94 + 6.12.0-rc.94 + 6.12.0-rc.94 + 6.12.0-rc.94 + 6.12.0-rc.94 + 6.12.0-rc.94 From 7ca98047135a8e60e9d2995d5fad9927aa053b7a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 7 Sep 2024 12:44:48 +0000 Subject: [PATCH 187/209] Update dependencies from https://github.com/dotnet/roslyn build 20240906.2 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.12.0-3.24456.1 -> To Version 4.12.0-3.24456.2 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4cb88264cfc7..46cd911c8255 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 20cca61a546fe378948f0550a0026ec6077c1600 - + https://github.com/dotnet/roslyn - 1ce264cab372119376a734a247e9f60fe898877a + 139f8454c7a9aca7807fe98bb760c3705559b902 - + https://github.com/dotnet/roslyn - 1ce264cab372119376a734a247e9f60fe898877a + 139f8454c7a9aca7807fe98bb760c3705559b902 - + https://github.com/dotnet/roslyn - 1ce264cab372119376a734a247e9f60fe898877a + 139f8454c7a9aca7807fe98bb760c3705559b902 - + https://github.com/dotnet/roslyn - 1ce264cab372119376a734a247e9f60fe898877a + 139f8454c7a9aca7807fe98bb760c3705559b902 - + https://github.com/dotnet/roslyn - 1ce264cab372119376a734a247e9f60fe898877a + 139f8454c7a9aca7807fe98bb760c3705559b902 - + https://github.com/dotnet/roslyn - 1ce264cab372119376a734a247e9f60fe898877a + 139f8454c7a9aca7807fe98bb760c3705559b902 - + https://github.com/dotnet/roslyn - 1ce264cab372119376a734a247e9f60fe898877a + 139f8454c7a9aca7807fe98bb760c3705559b902 - + https://github.com/dotnet/roslyn - 1ce264cab372119376a734a247e9f60fe898877a + 139f8454c7a9aca7807fe98bb760c3705559b902 - + https://github.com/dotnet/roslyn - 1ce264cab372119376a734a247e9f60fe898877a + 139f8454c7a9aca7807fe98bb760c3705559b902 https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index d0aed3c086d9..115e564b1f44 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,14 +235,14 @@ - 4.12.0-3.24456.1 - 4.12.0-3.24456.1 - 4.12.0-3.24456.1 - 4.12.0-3.24456.1 - 4.12.0-3.24456.1 - 4.12.0-3.24456.1 - 4.12.0-3.24456.1 - 4.12.0-3.24456.1 + 4.12.0-3.24456.2 + 4.12.0-3.24456.2 + 4.12.0-3.24456.2 + 4.12.0-3.24456.2 + 4.12.0-3.24456.2 + 4.12.0-3.24456.2 + 4.12.0-3.24456.2 + 4.12.0-3.24456.2 From f5ba03debb63f80fb2defab1dddd20813807be65 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 7 Sep 2024 12:46:04 +0000 Subject: [PATCH 188/209] Update dependencies from https://github.com/dotnet/msbuild build 20240906.2 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.12.0-preview-24455-02 -> To Version 17.12.0-preview-24456-02 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b846ef629dfc..fb8f184f3d42 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -69,18 +69,18 @@ c136d56093029c7dc696fd9cc15a4381077390f4 - + https://github.com/dotnet/msbuild - b1e6c2512963d41949b5c8e287ca3bb4e9fa2e90 + 2206a054f2c82e91918809ea27d1ef5b3f7cfc4b - + https://github.com/dotnet/msbuild - b1e6c2512963d41949b5c8e287ca3bb4e9fa2e90 + 2206a054f2c82e91918809ea27d1ef5b3f7cfc4b - + https://github.com/dotnet/msbuild - b1e6c2512963d41949b5c8e287ca3bb4e9fa2e90 + 2206a054f2c82e91918809ea27d1ef5b3f7cfc4b diff --git a/eng/Versions.props b/eng/Versions.props index aa7416b1c60d..2385ebee0fc0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -212,8 +212,8 @@ then use that in Directory.Packages.props. At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. --> - 17.12.0-preview-24455-02 - 17.12.0-preview-24455-02 + 17.12.0-preview-24456-02 + 17.12.0-preview-24456-02 $([System.IO.File]::ReadAllText('$(RepoRoot)src\Layout\redist\minimumMSBuildVersion').Trim()) From 267878410cdcb22832c627d31c476c95b81475bc Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 7 Sep 2024 12:46:31 +0000 Subject: [PATCH 189/209] Update dependencies from https://github.com/dotnet/sourcelink build 20240906.2 Microsoft.SourceBuild.Intermediate.sourcelink , Microsoft.Build.Tasks.Git , Microsoft.SourceLink.AzureRepos.Git , Microsoft.SourceLink.Bitbucket.Git , Microsoft.SourceLink.Common , Microsoft.SourceLink.GitHub , Microsoft.SourceLink.GitLab From Version 9.0.0-beta.24455.2 -> To Version 9.0.0-beta.24456.2 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 099cc8e5fdce..a2daf775a06a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -456,34 +456,34 @@ https://github.com/dotnet/deployment-tools 7871ee378dce87b64d930d4f33dca9c888f4034d - + https://github.com/dotnet/sourcelink - 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e + a3a6c5560d7593ede6e78835f53bbaa08a48a2df - + https://github.com/dotnet/sourcelink - 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e + a3a6c5560d7593ede6e78835f53bbaa08a48a2df - + https://github.com/dotnet/sourcelink - 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e + a3a6c5560d7593ede6e78835f53bbaa08a48a2df - + https://github.com/dotnet/sourcelink - 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e + a3a6c5560d7593ede6e78835f53bbaa08a48a2df - + https://github.com/dotnet/sourcelink - 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e + a3a6c5560d7593ede6e78835f53bbaa08a48a2df - + https://github.com/dotnet/sourcelink - 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e + a3a6c5560d7593ede6e78835f53bbaa08a48a2df - + https://github.com/dotnet/sourcelink - 5bd2582d67fb12f6df0cd9be6d81f1114ca6138e + a3a6c5560d7593ede6e78835f53bbaa08a48a2df diff --git a/eng/Versions.props b/eng/Versions.props index cdf3d4b06405..b826399b3847 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -320,12 +320,12 @@ - 9.0.0-beta.24455.2 - 9.0.0-beta.24455.2 - 9.0.0-beta.24455.2 - 9.0.0-beta.24455.2 - 9.0.0-beta.24455.2 - 9.0.0-beta.24455.2 + 9.0.0-beta.24456.2 + 9.0.0-beta.24456.2 + 9.0.0-beta.24456.2 + 9.0.0-beta.24456.2 + 9.0.0-beta.24456.2 + 9.0.0-beta.24456.2 From 8ed9165670096cec58b300f8d03f3c577271aafa Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 7 Sep 2024 12:47:16 +0000 Subject: [PATCH 190/209] Update dependencies from https://github.com/dotnet/runtime build 20240906.9 Microsoft.Bcl.AsyncInterfaces , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Console , Microsoft.NET.HostModel , Microsoft.NET.ILLink.Tasks , Microsoft.NETCore.App.Host.win-x64 , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.SystemEvents , System.CodeDom , System.Composition.AttributedModel , System.Composition.Convention , System.Composition.Hosting , System.Composition.Runtime , System.Composition.TypedParts , System.Configuration.ConfigurationManager , System.Formats.Asn1 , 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 , VS.Redist.Common.NetCore.SharedFramework.x64.9.0 , VS.Redist.Common.NetCore.TargetingPack.x64.9.0 , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.0-rc.2.24455.13 -> To Version 9.0.0-rc.2.24456.9 --- eng/Version.Details.xml | 140 ++++++++++++++++++++-------------------- eng/Versions.props | 68 +++++++++---------- 2 files changed, 104 insertions(+), 104 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 33cdbc3e6d48..0e8e14fd0e6e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,42 +15,42 @@ 133c2a92258a1d4047eb077e39aa82b445dd57f5 - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b @@ -226,29 +226,29 @@ 07acde22b65497e72de145d57167b83609a7f7fb - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b https://github.com/dotnet/windowsdesktop @@ -499,89 +499,89 @@ - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b https://github.com/dotnet/aspnetcore 36cdc65bf29bac3d7bd0c5d38242a92608fab7eb - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b @@ -615,9 +615,9 @@ d21db44e84b9038ea7b2add139adee2303d46800 - + https://github.com/dotnet/runtime - 24889f914558a0fa2ce9631788ceaba6936dad8a + dec716d1c4651b70e4710e781e832a64be1e713b https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index a2e73e4bc4bc..2bb0be69d358 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,47 +122,47 @@ - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 8.0.0-rc.1.23414.4 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 2.1.0 - 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24456.9 8.0.0 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 8.0.0 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 8.0.4 - 9.0.0-rc.2.24455.13 - 9.0.0-rc.2.24455.13 + 9.0.0-rc.2.24456.9 + 9.0.0-rc.2.24456.9 From c80faea95ec961426f3ac3938d465e17fe418fe6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 8 Sep 2024 02:40:17 +0000 Subject: [PATCH 191/209] [release/9.0.1xx] ResolvePackageReferences: PackageDependenciesDesignTime inherits transitive package DiagnosticLevel (#43262) Co-authored-by: Andy Zivkovic --- ...WantToGetDependenciesViaDesignTimeBuild.cs | 52 ++++++++- .../ResolvePackageAssets.cs | 104 +++++++++++++++--- 2 files changed, 135 insertions(+), 21 deletions(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenThatWeWantToGetDependenciesViaDesignTimeBuild.cs b/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenThatWeWantToGetDependenciesViaDesignTimeBuild.cs index bcc395e48d64..5a97538139b3 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenThatWeWantToGetDependenciesViaDesignTimeBuild.cs +++ b/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenThatWeWantToGetDependenciesViaDesignTimeBuild.cs @@ -37,10 +37,10 @@ public void ItShouldIgnoreAllDependenciesWithTypeNotEqualToPackageOrUnresolved() Assert.Equal(2, task.PackageDependenciesDesignTime.Count()); - // Verify only + // Verify only // top.package1 is type 'package' // top.package2 is type 'unresolved' - // + // // top.package3 is type 'unknown'. Should not appear in the list var item1 = task.PackageDependenciesDesignTime[0]; Assert.Equal("top.package1/1.0.0", item1.ItemSpec); @@ -372,14 +372,38 @@ public void ItShouldOnlyReturnTopLevelPackages() var item1 = task.PackageDependenciesDesignTime[0]; Assert.Equal("top.package1/1.0.0", item1.ItemSpec); + Assert.Equal("Error", item1.GetMetadata("DiagnosticLevel")); var item2 = task.PackageDependenciesDesignTime[1]; Assert.Equal("top.package2/1.0.0", item2.ItemSpec); + Assert.Equal(string.Empty, item2.GetMetadata("DiagnosticLevel")); var item3 = task.PackageDependenciesDesignTime[2]; Assert.Equal("top.package3/1.0.0", item3.ItemSpec); + Assert.Equal("Warning", item3.GetMetadata("DiagnosticLevel")); } + /// + /// Create a NuGet assets file for a project with 3 direct references, and 3 transitive references. + /// + /// Path to the NuGet global packages folder that the assets file will refer to. + /// Whether "top.package2" is a "package" (default) or "project" reference. + /// Whether "top.package2" is a "package" (default) or "project" reference. + /// The JSON string representing the project. + /// + /// The reference structure is as follows:
+ /// proj
+ /// + top.package1
+ /// | + dependent.package1
+ /// | | + dependent.package3
+ /// | + dependent.package2
+ /// + top.package2
+ /// + top.package2
+ /// - + dependent.package1
+ /// - - + dependent.package3
+ ///
+ /// dependent.package2 has an error message, and dependent.package3 has a warning. + ///
private string CreateBasicProjectAssetsFile(string testRoot, string package2Type = "package", string package3Type = "package") { var json = @@ -587,7 +611,29 @@ private string CreateBasicProjectAssetsFile(string testRoot, string package2Type } } } - } + }, + "logs": [ + { + "code": "NU1001", + "level": "Error", + "warningLevel": 2, + "message": "some warning message", + "libraryId": "dependent.package2", + "targetGraphs": [ + "net6.0" + ] + }, + { + "code": "NU1002", + "level": "Warning", + "warningLevel": 1, + "message": "some warning message", + "libraryId": "dependent.package3", + "targetGraphs": [ + "net6.0" + ] + } + ] } """; return json.Replace("PACKAGE2_TYPE", package2Type) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/ResolvePackageAssets.cs b/src/Tasks/Microsoft.NET.Build.Tasks/ResolvePackageAssets.cs index 364d9b04a7f5..e1e9fcf1b39d 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/ResolvePackageAssets.cs +++ b/src/Tasks/Microsoft.NET.Build.Tasks/ResolvePackageAssets.cs @@ -1438,6 +1438,7 @@ private void WritePackageDependenciesDesignTime() // Scan PackageDependencies to build the set of packages in our target. var allowItemSpecs = GetPackageDependencies(); + var diagnosticLevels = GetPackageDiagnosticLevels(); foreach (var package in _lockFile.Libraries) { @@ -1477,8 +1478,11 @@ private void WritePackageDependenciesDesignTime() : itemPath) ?? string.Empty; WriteMetadata(MetadataKeys.Path, path); - string itemDiagnosticLevel = GetPackageDiagnosticLevel(package); - var diagnosticLevel = itemDiagnosticLevel ?? string.Empty; + string diagnosticLevel = string.Empty; + if (diagnosticLevels?.TryGetValue(package.Name, out LogLevel level) ?? false) + { + diagnosticLevel = level.ToString(); + } WriteMetadata(MetadataKeys.DiagnosticLevel, diagnosticLevel); } } @@ -1506,28 +1510,92 @@ HashSet GetPackageDependencies() static string GetPackageId(LockFileTargetLibrary package) => $"{package.Name}/{package.Version.ToNormalizedString()}"; - string GetPackageDiagnosticLevel(LockFileLibrary package) + Dictionary GetPackageDiagnosticLevels() { - string target = _task.TargetFramework ?? ""; + if (_lockFile.LogMessages.Count == 0) + { + return null; + } + + var packageReverseDependencies = GetReverseDependencies(); + var result = new Dictionary(); + for (int i = 0; i < _lockFile.LogMessages.Count; i++) + { + var message = _lockFile.LogMessages[i]; + if (string.IsNullOrEmpty(message.LibraryId)) continue; - var messages = _lockFile.LogMessages.Where(log => - log.LibraryId == package.Name && - log.TargetGraphs.Any(tg => + if (message.TargetGraphs is null || message.TargetGraphs.Count == 0 || message.TargetGraphs.Any(ForCurrentTargetFramework)) { - var parts = tg.Split(LockFile.DirectorySeparatorChar); - var parsedTargetGraph = NuGetFramework.Parse(parts[0]); - var alias = _lockFile.PackageSpec.TargetFrameworks - .FirstOrDefault(tf => tf.FrameworkName == parsedTargetGraph) - ?.TargetAlias ?? tg; - return alias == target; - })); - - if (!messages.Any()) + ApplyDiagnosticLevel(message.LibraryId, message.Level, result, packageReverseDependencies); + } + } + + return result; + + Dictionary> GetReverseDependencies() { - return string.Empty; + var packageReverseDependencies = new Dictionary>(_compileTimeTarget.Libraries.Count, StringComparer.OrdinalIgnoreCase); + for (int i = 0; i < _compileTimeTarget.Libraries.Count; i++) + { + var parentPackage = _compileTimeTarget.Libraries[i]; + if (string.IsNullOrEmpty(parentPackage.Name)) continue; + + if (!packageReverseDependencies.ContainsKey(parentPackage.Name)) + { + packageReverseDependencies[parentPackage.Name] = new HashSet(StringComparer.OrdinalIgnoreCase); + } + + for (int j = 0; j < parentPackage.Dependencies.Count; j++) + { + var dependency = parentPackage.Dependencies[j].Id; + + if (!packageReverseDependencies.TryGetValue(dependency, out HashSet parentPackages)) + { + parentPackages = new HashSet(StringComparer.OrdinalIgnoreCase); + packageReverseDependencies[dependency] = parentPackages; + } + + parentPackages.Add(parentPackage.Name); + } + } + return packageReverseDependencies; + } + + bool ForCurrentTargetFramework(string targetFramework) + { + var parts = targetFramework.Split(LockFile.DirectorySeparatorChar); + var parsedTargetGraph = NuGetFramework.Parse(parts[0]); + var alias = _lockFile.PackageSpec.TargetFrameworks + .FirstOrDefault(tf => tf.FrameworkName == parsedTargetGraph) + ?.TargetAlias ?? targetFramework; + return alias == _task.TargetFramework; } - return messages.Max(log => log.Level).ToString(); + void ApplyDiagnosticLevel(string package, LogLevel messageLevel, Dictionary diagnosticLevels, Dictionary> reverseDependencies) + { + if (!reverseDependencies.TryGetValue(package, out HashSet parentPackages)) + { + // The package is not used in the current TargetFramework + return; + } + + if (diagnosticLevels.TryGetValue(package, out LogLevel cachedLevel)) + { + // Only continue if we need to increase the level + if (cachedLevel >= messageLevel) + { + return; + } + } + + diagnosticLevels[package] = messageLevel; + + // Flow changes upwards, towards the direct PackageReference + foreach (var parentPackage in parentPackages) + { + ApplyDiagnosticLevel(parentPackage, messageLevel, diagnosticLevels, reverseDependencies); + } + } } static DependencyType GetDependencyType(string dependencyTypeString) From 421fa5d4b14b0e7e587c5aee46ce5a5b2fc60b6e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 8 Sep 2024 03:04:55 +0000 Subject: [PATCH 192/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240907.2 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24456.1 -> To Version 9.0.0-rc.2.24457.2 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates From Version 9.0.0-rc.2.24455.3 -> To Version 9.0.0-rc.2.24457.2 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 35c820061c1b..7c905ee71191 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,26 +250,26 @@ https://github.com/dotnet/runtime af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef
- + https://github.com/dotnet/windowsdesktop - db9690feac3a8b01a5b4b5a22440848c3fd263d8 + 1f02f58396bb7b70d450e2763bc3f1b22c815910 - + https://github.com/dotnet/windowsdesktop - db9690feac3a8b01a5b4b5a22440848c3fd263d8 + 1f02f58396bb7b70d450e2763bc3f1b22c815910 - + https://github.com/dotnet/windowsdesktop - db9690feac3a8b01a5b4b5a22440848c3fd263d8 + 1f02f58396bb7b70d450e2763bc3f1b22c815910 - + https://github.com/dotnet/windowsdesktop - db9690feac3a8b01a5b4b5a22440848c3fd263d8 + 1f02f58396bb7b70d450e2763bc3f1b22c815910 - + https://github.com/dotnet/wpf - 7ab4ae3a7bd42b246f086c81f97054b02c5677a1 + 6151bed2378b67242a9f1f89d177ca867b73ad47 https://github.com/dotnet/aspnetcore @@ -386,13 +386,13 @@ - + https://github.com/dotnet/winforms - 636c275ebced377ccbe2763a21488f3e9d346c0b + 1d824777942fbf986bee52a502301fd6daae8a49 - + https://github.com/dotnet/wpf - 7ab4ae3a7bd42b246f086c81f97054b02c5677a1 + 6151bed2378b67242a9f1f89d177ca867b73ad47 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index ce5d90706382..89028d1fade4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -111,7 +111,7 @@ - 9.0.0-rc.2.24455.3 + 9.0.0-rc.2.24456.5 @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24456.1 - 9.0.0-rc.2.24456.1 - 9.0.0-rc.2.24456.1 - 9.0.0-rc.2.24456.1 + 9.0.0-rc.2.24457.2 + 9.0.0-rc.2.24457.2 + 9.0.0-rc.2.24457.2 + 9.0.0-rc.2.24457.2 @@ -268,8 +268,8 @@ - 9.0.0-rc.2.24455.3 - 9.0.0-rc.2.24455.3 + 9.0.0-rc.2.24457.2 + 9.0.0-rc.2.24457.2 From 1a034497d926467a8c0dbad712505b50c573a104 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 8 Sep 2024 13:04:51 +0000 Subject: [PATCH 193/209] Update dependencies from https://github.com/dotnet/windowsdesktop build 20240908.2 Microsoft.WindowsDesktop.App.Ref , Microsoft.WindowsDesktop.App.Runtime.win-x64 , VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0 , VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0 From Version 9.0.0-rc.2.24457.2 -> To Version 9.0.0-rc.2.24458.2 Dependency coherency updates Microsoft.NET.Sdk.WindowsDesktop,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.DotNet.Wpf.ProjectTemplates From Version 9.0.0-rc.2.24457.2 -> To Version 9.0.0-rc.2.24457.4 (parent: Microsoft.WindowsDesktop.App.Ref --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7c905ee71191..64e09e686b49 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -250,26 +250,26 @@ https://github.com/dotnet/runtime af1b39a3d8bb2221ab1021f20ba6f87ef9c5c9ef - + https://github.com/dotnet/windowsdesktop - 1f02f58396bb7b70d450e2763bc3f1b22c815910 + 31297e056109cac7d842d114fe5c1d8519efe551 - + https://github.com/dotnet/windowsdesktop - 1f02f58396bb7b70d450e2763bc3f1b22c815910 + 31297e056109cac7d842d114fe5c1d8519efe551 - + https://github.com/dotnet/windowsdesktop - 1f02f58396bb7b70d450e2763bc3f1b22c815910 + 31297e056109cac7d842d114fe5c1d8519efe551 - + https://github.com/dotnet/windowsdesktop - 1f02f58396bb7b70d450e2763bc3f1b22c815910 + 31297e056109cac7d842d114fe5c1d8519efe551 - + https://github.com/dotnet/wpf - 6151bed2378b67242a9f1f89d177ca867b73ad47 + 1effdb1edc6b13befbbf53f4ee078efa97f989a2 https://github.com/dotnet/aspnetcore @@ -386,13 +386,13 @@ - + https://github.com/dotnet/winforms - 1d824777942fbf986bee52a502301fd6daae8a49 + b1fd89453ed5e3ad91e4f18c9386cac8dade6e36 - + https://github.com/dotnet/wpf - 6151bed2378b67242a9f1f89d177ca867b73ad47 + 1effdb1edc6b13befbbf53f4ee078efa97f989a2 https://github.com/dotnet/xdt diff --git a/eng/Versions.props b/eng/Versions.props index 89028d1fade4..406d5d8ac231 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -111,7 +111,7 @@ - 9.0.0-rc.2.24456.5 + 9.0.0-rc.2.24457.2 @@ -166,10 +166,10 @@ - 9.0.0-rc.2.24457.2 - 9.0.0-rc.2.24457.2 - 9.0.0-rc.2.24457.2 - 9.0.0-rc.2.24457.2 + 9.0.0-rc.2.24458.2 + 9.0.0-rc.2.24458.2 + 9.0.0-rc.2.24458.2 + 9.0.0-rc.2.24458.2 @@ -268,8 +268,8 @@ - 9.0.0-rc.2.24457.2 - 9.0.0-rc.2.24457.2 + 9.0.0-rc.2.24457.4 + 9.0.0-rc.2.24457.4 From 81a34a8be456417f0c62421919e32f724646ff5e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 9 Sep 2024 10:26:26 +0000 Subject: [PATCH 194/209] Update dependencies from https://github.com/dotnet/razor build 20240909.1 Microsoft.SourceBuild.Intermediate.razor , Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal , Microsoft.CodeAnalysis.Razor.Tooling.Internal , Microsoft.NET.Sdk.Razor.SourceGenerators.Transport From Version 9.0.0-preview.24455.2 -> To Version 9.0.0-preview.24459.1 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 92f322e9b205..7a15bd4ed5d6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -321,22 +321,22 @@ 07da5601559ba66827c1b89ada58ff9d2ea676bc - + https://github.com/dotnet/razor - fdda4bbae9261f96d1eb15cca92566c7bf5792c4 + 308833d8b85f790695be44aad273433286ff68a4 - + https://github.com/dotnet/razor - fdda4bbae9261f96d1eb15cca92566c7bf5792c4 + 308833d8b85f790695be44aad273433286ff68a4 - + https://github.com/dotnet/razor - fdda4bbae9261f96d1eb15cca92566c7bf5792c4 + 308833d8b85f790695be44aad273433286ff68a4 - + https://github.com/dotnet/razor - fdda4bbae9261f96d1eb15cca92566c7bf5792c4 + 308833d8b85f790695be44aad273433286ff68a4 diff --git a/eng/Versions.props b/eng/Versions.props index 1aa38485d224..128bc5f06a30 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -262,9 +262,9 @@ - 9.0.0-preview.24455.2 - 9.0.0-preview.24455.2 - 9.0.0-preview.24455.2 + 9.0.0-preview.24459.1 + 9.0.0-preview.24459.1 + 9.0.0-preview.24459.1 From d3a4a7db331d99c0e3cabf8e158ab76b218da85f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 9 Sep 2024 12:41:33 +0000 Subject: [PATCH 195/209] Update dependencies from https://github.com/dotnet/roslyn build 20240908.2 Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.CSharp.CodeStyle , Microsoft.CodeAnalysis.CSharp.Features , Microsoft.CodeAnalysis.CSharp.Workspaces , Microsoft.CodeAnalysis.Workspaces.MSBuild , Microsoft.Net.Compilers.Toolset , Microsoft.Net.Compilers.Toolset.Framework From Version 4.12.0-3.24456.2 -> To Version 4.12.0-3.24458.2 --- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 92f322e9b205..b7521fadde91 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -93,43 +93,43 @@ 20cca61a546fe378948f0550a0026ec6077c1600 - + https://github.com/dotnet/roslyn - 139f8454c7a9aca7807fe98bb760c3705559b902 + bd5c00e5e09de8564093f42d87fe49d4971f2e84 - + https://github.com/dotnet/roslyn - 139f8454c7a9aca7807fe98bb760c3705559b902 + bd5c00e5e09de8564093f42d87fe49d4971f2e84 - + https://github.com/dotnet/roslyn - 139f8454c7a9aca7807fe98bb760c3705559b902 + bd5c00e5e09de8564093f42d87fe49d4971f2e84 - + https://github.com/dotnet/roslyn - 139f8454c7a9aca7807fe98bb760c3705559b902 + bd5c00e5e09de8564093f42d87fe49d4971f2e84 - + https://github.com/dotnet/roslyn - 139f8454c7a9aca7807fe98bb760c3705559b902 + bd5c00e5e09de8564093f42d87fe49d4971f2e84 - + https://github.com/dotnet/roslyn - 139f8454c7a9aca7807fe98bb760c3705559b902 + bd5c00e5e09de8564093f42d87fe49d4971f2e84 - + https://github.com/dotnet/roslyn - 139f8454c7a9aca7807fe98bb760c3705559b902 + bd5c00e5e09de8564093f42d87fe49d4971f2e84 - + https://github.com/dotnet/roslyn - 139f8454c7a9aca7807fe98bb760c3705559b902 + bd5c00e5e09de8564093f42d87fe49d4971f2e84 - + https://github.com/dotnet/roslyn - 139f8454c7a9aca7807fe98bb760c3705559b902 + bd5c00e5e09de8564093f42d87fe49d4971f2e84 https://github.com/dotnet/aspnetcore diff --git a/eng/Versions.props b/eng/Versions.props index 1aa38485d224..77a01f35e581 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -235,14 +235,14 @@ - 4.12.0-3.24456.2 - 4.12.0-3.24456.2 - 4.12.0-3.24456.2 - 4.12.0-3.24456.2 - 4.12.0-3.24456.2 - 4.12.0-3.24456.2 - 4.12.0-3.24456.2 - 4.12.0-3.24456.2 + 4.12.0-3.24458.2 + 4.12.0-3.24458.2 + 4.12.0-3.24458.2 + 4.12.0-3.24458.2 + 4.12.0-3.24458.2 + 4.12.0-3.24458.2 + 4.12.0-3.24458.2 + 4.12.0-3.24458.2 From 145284681b8fc5c359c0ed63ba3f7eb191aacb14 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 9 Sep 2024 12:50:24 +0000 Subject: [PATCH 196/209] Update dependencies from https://github.com/dotnet/test-templates build 20240909.1 Microsoft.SourceBuild.Intermediate.test-templates , Microsoft.DotNet.Test.ProjectTemplates.9.0 From Version 1.1.0-rc.24431.1 -> To Version 1.1.0-rc.24459.1 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 92f322e9b205..0dcd11e62d42 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -375,14 +375,14 @@ https://github.com/dotnet/test-templates 49c9ad01f057b3c6352bbec12b117acc2224493c - + https://github.com/dotnet/test-templates - e833d4684ffa6144968f530a0b3250c540fae026 + fcc8f4e4a99991b91a6232c36f31555090cbdfe2 - + https://github.com/dotnet/test-templates - e833d4684ffa6144968f530a0b3250c540fae026 + fcc8f4e4a99991b91a6232c36f31555090cbdfe2 diff --git a/eng/Versions.props b/eng/Versions.props index 1aa38485d224..6361df7975ca 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -118,7 +118,7 @@ 1.1.0-rc.24069.1 1.1.0-rc.24202.1 - 1.1.0-rc.24431.1 + 1.1.0-rc.24459.1 From 10fc7967cdf4b77d536d005282854bb3e5ba8aa5 Mon Sep 17 00:00:00 2001 From: ".NET Source-Build Bot" <102560831+dotnet-sb-bot@users.noreply.github.com> Date: Mon, 9 Sep 2024 10:03:27 -0500 Subject: [PATCH 197/209] Update Source-Build License Scan Baselines and Exclusions (#43279) --- .../assets/LicenseScanTests/LicenseExclusions.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/LicenseScanTests/LicenseExclusions.txt b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/LicenseScanTests/LicenseExclusions.txt index 09d53e86f340..a6121cbcb55f 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/LicenseScanTests/LicenseExclusions.txt +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/LicenseScanTests/LicenseExclusions.txt @@ -153,7 +153,6 @@ src/runtime/src/mono/mono/mini/mini-windows.c|unknown-license-reference src/runtime/src/native/external/libunwind/doc/libunwind-ia64.*|generic-exception src/runtime/src/native/external/zlib-ng/cmake/detect-arch.cmake|unknown-license-reference src/runtime/src/native/external/zlib-ng/cmake/detect-coverage.cmake|other-permissive,tsl-2020,unknown-license-reference -src/runtime/src/native/external/zlib-ng/cmake/detect-intrinsics.cmake|unknown-license-reference src/runtime/src/native/external/zlib-ng/cmake/detect-sanitizer.cmake|unknown-license-reference src/runtime/src/tests/JIT/Performance/CodeQuality/V8/Crypto/Crypto.cs|unknown-license-reference From 9ef5ebeb97f307821bc250091f803813312d26c8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 9 Sep 2024 15:24:03 +0000 Subject: [PATCH 198/209] Update dependencies from https://github.com/dotnet/test-templates build 20240909.2 Microsoft.SourceBuild.Intermediate.test-templates , Microsoft.DotNet.Test.ProjectTemplates.9.0 From Version 1.1.0-rc.24459.1 -> To Version 1.1.0-rc.24459.2 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0dcd11e62d42..4748b6efcfe7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -375,14 +375,14 @@ https://github.com/dotnet/test-templates 49c9ad01f057b3c6352bbec12b117acc2224493c - + https://github.com/dotnet/test-templates - fcc8f4e4a99991b91a6232c36f31555090cbdfe2 + cb42ab507e76aff8bdbf990c6eea2aa74a10f26a - + https://github.com/dotnet/test-templates - fcc8f4e4a99991b91a6232c36f31555090cbdfe2 + cb42ab507e76aff8bdbf990c6eea2aa74a10f26a diff --git a/eng/Versions.props b/eng/Versions.props index 6361df7975ca..9462a5b5906d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -118,7 +118,7 @@ 1.1.0-rc.24069.1 1.1.0-rc.24202.1 - 1.1.0-rc.24459.1 + 1.1.0-rc.24459.2 From a4a8b09fe7efb380206d13f519e637883db9235d Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Tue, 27 Aug 2024 19:04:45 +0200 Subject: [PATCH 199/209] Reduce allocations on DefineStaticWebAssets --- ....StaticWebAssets.ContentTypeMappings.props | 424 +---------------- .../Tasks/Data/ContentTypeMapping.cs | 45 ++ .../Tasks/Data/ContentTypeProvider.cs | 446 ++++++++++++++++++ .../Tasks/DefineStaticWebAssetEndpoints.cs | 53 +-- 4 files changed, 500 insertions(+), 468 deletions(-) create mode 100644 src/StaticWebAssetsSdk/Tasks/Data/ContentTypeMapping.cs create mode 100644 src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs diff --git a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.ContentTypeMappings.props b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.ContentTypeMappings.props index 6b19e0810b72..e9e788990386 100644 --- a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.ContentTypeMappings.props +++ b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.ContentTypeMappings.props @@ -20,67 +20,11 @@ and to make the maping of some content types more efficient by bypassing the rules for uncommon content types. --> - + max-age=3600, must-revalidate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -88,10 +32,8 @@ - - @@ -107,109 +49,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -233,8 +72,6 @@ - - @@ -259,264 +96,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeMapping.cs b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeMapping.cs new file mode 100644 index 000000000000..edf5a5221c80 --- /dev/null +++ b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeMapping.cs @@ -0,0 +1,45 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Build.Framework; +using Microsoft.Extensions.FileSystemGlobbing; + +namespace Microsoft.AspNetCore.StaticWebAssets.Tasks +{ + internal struct ContentTypeMapping + { + private Matcher _matcher; + + public ContentTypeMapping(string mimeType, string cache, string pattern, int priority) + { + Pattern = pattern; + MimeType = mimeType; + Cache = cache; + Priority = priority; + } + + public string Pattern { get; set; } + + public string MimeType { get; set; } + + public string Cache { get; set; } + + public int Priority { get; } + + internal static ContentTypeMapping FromTaskItem(ITaskItem contentTypeMappings) => new( + contentTypeMappings.ItemSpec, + contentTypeMappings.GetMetadata(nameof(Cache)), + contentTypeMappings.GetMetadata(nameof(Pattern)), + int.Parse(contentTypeMappings.GetMetadata(nameof(Priority)))); + + internal bool Matches(string identity) + { + if (_matcher == null) + { + _matcher = new Matcher(); + _matcher.AddInclude(Pattern); + } + return _matcher.Match(identity).HasMatches; + } + } +} diff --git a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs new file mode 100644 index 000000000000..be818f5d863e --- /dev/null +++ b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs @@ -0,0 +1,446 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.StaticWebAssets.Tasks; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; + +namespace Microsoft.NET.Sdk.StaticWebAssets.Tasks; + +internal class ContentTypeProvider(ContentTypeMapping[] customMappings) +{ + private static Dictionary _builtInMappings = + new Dictionary() + { + [".js"] = new ContentTypeMapping("text/javascript", null, "*.js", 1), + [".css"] = new ContentTypeMapping("text/css", null, "*.css", 1), + [".html"] = new ContentTypeMapping("text/html", null, "*.html", 1), + [".json"] = new ContentTypeMapping("application/json", null, "*.json", 1), + [".mjs"] = new ContentTypeMapping("text/javascript", null, "*.mjs", 1), + [".xml"] = new ContentTypeMapping("text/xml", null, "*.xml", 1), + [".htm"] = new ContentTypeMapping("text/html", null, "*.htm", 1), + [".wasm"] = new ContentTypeMapping("application/wasm", null, "*.wasm", 1), + [".txt"] = new ContentTypeMapping("text/plain", null, "*.txt", 1), + [".dll"] = new ContentTypeMapping("application/octect-stream", null, "*.dll", 1), + [".pdb"] = new ContentTypeMapping("application/octect-stream", null, "*.pdb", 1), + [".dat"] = new ContentTypeMapping("application/octect-stream", null, "*.dat", 1), + [".webmanifest"] = new ContentTypeMapping("application/manifest+json", null, "*.webmanifest", 1), + [".jsx"] = new ContentTypeMapping("text/jscript", null, "*.jsx", 1), + [".markdown"] = new ContentTypeMapping("text/markdown", null, "*.markdown", 1), + [".gz"] = new ContentTypeMapping("application/x-gzip", null, "*.gz", 1), + [".md"] = new ContentTypeMapping("text/markdown", null, "*.md", 1), + [".bmp"] = new ContentTypeMapping("image/bmp", null, "*.bmp", 1), + [".jpeg"] = new ContentTypeMapping("image/jpeg", null, "*.jpeg", 1), + [".jpg"] = new ContentTypeMapping("image/jpeg", null, "*.jpg", 1), + [".gif"] = new ContentTypeMapping("image/gif", null, "*.gif", 1), + [".svg"] = new ContentTypeMapping("image/svg+xml", null, "*.svg", 1), + [".png"] = new ContentTypeMapping("image/png", null, "*.png", 1), + [".webp"] = new ContentTypeMapping("image/webp", null, "*.webp", 1), + [".otf"] = new ContentTypeMapping("font/otf", null, "*.otf", 1), + [".woff2"] = new ContentTypeMapping("font/woff2", null, "*.woff2", 1), + [".m4v"] = new ContentTypeMapping("video/mp4", null, "*.m4v", 1), + [".mov"] = new ContentTypeMapping("video/quicktime", null, "*.mov", 1), + [".movie"] = new ContentTypeMapping("video/x-sgi-movie", null, "*.movie", 1), + [".mp2"] = new ContentTypeMapping("video/mpeg", null, "*.mp2", 1), + [".mp4"] = new ContentTypeMapping("video/mp4", null, "*.mp4", 1), + [".mp4v"] = new ContentTypeMapping("video/mp4", null, "*.mp4v", 1), + [".mpa"] = new ContentTypeMapping("video/mpeg", null, "*.mpa", 1), + [".mpe"] = new ContentTypeMapping("video/mpeg", null, "*.mpe", 1), + [".mpeg"] = new ContentTypeMapping("video/mpeg", null, "*.mpeg", 1), + [".mpg"] = new ContentTypeMapping("video/mpeg", null, "*.mpg", 1), + [".mpv2"] = new ContentTypeMapping("video/mpeg", null, "*.mpv2", 1), + [".nsc"] = new ContentTypeMapping("video/x-ms-asf", null, "*.nsc", 1), + [".ogg"] = new ContentTypeMapping("video/ogg", null, "*.ogg", 1), + [".ogv"] = new ContentTypeMapping("video/ogg", null, "*.ogv", 1), + [".webm"] = new ContentTypeMapping("video/webm", null, "*.webm", 1), + [".323"] = new ContentTypeMapping("text/h323", null, "*.323", 1), + [".appcache"] = new ContentTypeMapping("text/cache-manifest", null, "*.appcache", 1), + [".asm"] = new ContentTypeMapping("text/plain", null, "*.asm", 1), + [".bas"] = new ContentTypeMapping("text/plain", null, "*.bas", 1), + [".c"] = new ContentTypeMapping("text/plain", null, "*.c", 1), + [".cnf"] = new ContentTypeMapping("text/plain", null, "*.cnf", 1), + [".cpp"] = new ContentTypeMapping("text/plain", null, "*.cpp", 1), + [".csv"] = new ContentTypeMapping("text/csv", null, "*.csv", 1), + [".disco"] = new ContentTypeMapping("text/xml", null, "*.disco", 1), + [".dlm"] = new ContentTypeMapping("text/dlm", null, "*.dlm", 1), + [".dtd"] = new ContentTypeMapping("text/xml", null, "*.dtd", 1), + [".etx"] = new ContentTypeMapping("text/x-setext", null, "*.etx", 1), + [".h"] = new ContentTypeMapping("text/plain", null, "*.h", 1), + [".hdml"] = new ContentTypeMapping("text/x-hdml", null, "*.hdml", 1), + [".htc"] = new ContentTypeMapping("text/x-component", null, "*.htc", 1), + [".htt"] = new ContentTypeMapping("text/webviewhtml", null, "*.htt", 1), + [".hxt"] = new ContentTypeMapping("text/html", null, "*.hxt", 1), + [".ical"] = new ContentTypeMapping("text/calendar", null, "*.ical", 1), + [".icalendar"] = new ContentTypeMapping("text/calendar", null, "*.icalendar", 1), + [".ics"] = new ContentTypeMapping("text/calendar", null, "*.ics", 1), + [".ifb"] = new ContentTypeMapping("text/calendar", null, "*.ifb", 1), + [".map"] = new ContentTypeMapping("text/plain", null, "*.map", 1), + [".mno"] = new ContentTypeMapping("text/xml", null, "*.mno", 1), + [".odc"] = new ContentTypeMapping("text/x-ms-odc", null, "*.odc", 1), + [".rtx"] = new ContentTypeMapping("text/richtext", null, "*.rtx", 1), + [".sct"] = new ContentTypeMapping("text/scriptlet", null, "*.sct", 1), + [".sgml"] = new ContentTypeMapping("text/sgml", null, "*.sgml", 1), + [".tsv"] = new ContentTypeMapping("text/tab-separated-values", null, "*.tsv", 1), + [".uls"] = new ContentTypeMapping("text/iuls", null, "*.uls", 1), + [".vbs"] = new ContentTypeMapping("text/vbscript", null, "*.vbs", 1), + [".vcf"] = new ContentTypeMapping("text/x-vcard", null, "*.vcf", 1), + [".vcs"] = new ContentTypeMapping("text/plain", null, "*.vcs", 1), + [".vml"] = new ContentTypeMapping("text/xml", null, "*.vml", 1), + [".wml"] = new ContentTypeMapping("text/vnd.wap.wml", null, "*.wml", 1), + [".wmls"] = new ContentTypeMapping("text/vnd.wap.wmlscript", null, "*.wmls", 1), + [".wsdl"] = new ContentTypeMapping("text/xml", null, "*.wsdl", 1), + [".xdr"] = new ContentTypeMapping("text/plain", null, "*.xdr", 1), + [".xsd"] = new ContentTypeMapping("text/xml", null, "*.xsd", 1), + [".xsf"] = new ContentTypeMapping("text/xml", null, "*.xsf", 1), + [".xsl"] = new ContentTypeMapping("text/xml", null, "*.xsl", 1), + [".xslt"] = new ContentTypeMapping("text/xml", null, "*.xslt", 1), + [".woff"] = new ContentTypeMapping("application/font-woff", null, "*.woff", 1), + [".art"] = new ContentTypeMapping("image/x-jg", null, "*.art", 1), + [".cmx"] = new ContentTypeMapping("image/x-cmx", null, "*.cmx", 1), + [".cod"] = new ContentTypeMapping("image/cis-cod", null, "*.cod", 1), + [".dib"] = new ContentTypeMapping("image/bmp", null, "*.dib", 1), + [".ico"] = new ContentTypeMapping("image/x-icon", null, "*.ico", 1), + [".ief"] = new ContentTypeMapping("image/ief", null, "*.ief", 1), + [".jfif"] = new ContentTypeMapping("image/pjpeg", null, "*.jfif", 1), + [".jpe"] = new ContentTypeMapping("image/jpeg", null, "*.jpe", 1), + [".pbm"] = new ContentTypeMapping("image/x-portable-bitmap", null, "*.pbm", 1), + [".pgm"] = new ContentTypeMapping("image/x-portable-graymap", null, "*.pgm", 1), + [".pnm"] = new ContentTypeMapping("image/x-portable-anymap", null, "*.pnm", 1), + [".pnz"] = new ContentTypeMapping("image/png", null, "*.pnz", 1), + [".ppm"] = new ContentTypeMapping("image/x-portable-pixmap", null, "*.ppm", 1), + [".ras"] = new ContentTypeMapping("image/x-cmu-raster", null, "*.ras", 1), + [".rf"] = new ContentTypeMapping("image/vnd.rn-realflash", null, "*.rf", 1), + [".rgb"] = new ContentTypeMapping("image/x-rgb", null, "*.rgb", 1), + [".svgz"] = new ContentTypeMapping("image/svg+xml", null, "*.svgz", 1), + [".tif"] = new ContentTypeMapping("image/tiff", null, "*.tif", 1), + [".tiff"] = new ContentTypeMapping("image/tiff", null, "*.tiff", 1), + [".wbmp"] = new ContentTypeMapping("image/vnd.wap.wbmp", null, "*.wbmp", 1), + [".xbm"] = new ContentTypeMapping("image/x-xbitmap", null, "*.xbm", 1), + [".xpm"] = new ContentTypeMapping("image/x-xpixmap", null, "*.xpm", 1), + [".xwd"] = new ContentTypeMapping("image/x-xwindowdump", null, "*.xwd", 1), + [".3g2"] = new ContentTypeMapping("video/3gpp2", null, "*.3g2", 1), + [".3gp2"] = new ContentTypeMapping("video/3gpp2", null, "*.3gp2", 1), + [".3gp"] = new ContentTypeMapping("video/3gpp", null, "*.3gp", 1), + [".3gpp"] = new ContentTypeMapping("video/3gpp", null, "*.3gpp", 1), + [".asf"] = new ContentTypeMapping("video/x-ms-asf", null, "*.asf", 1), + [".asr"] = new ContentTypeMapping("video/x-ms-asf", null, "*.asr", 1), + [".asx"] = new ContentTypeMapping("video/x-ms-asf", null, "*.asx", 1), + [".avi"] = new ContentTypeMapping("video/x-msvideo", null, "*.avi", 1), + [".dvr"] = new ContentTypeMapping("video/x-ms-dvr", null, "*.dvr", 1), + [".flv"] = new ContentTypeMapping("video/x-flv", null, "*.flv", 1), + [".IVF"] = new ContentTypeMapping("video/x-ivf", null, "*.IVF", 1), + [".lsf"] = new ContentTypeMapping("video/x-la-asf", null, "*.lsf", 1), + [".lsx"] = new ContentTypeMapping("video/x-la-asf", null, "*.lsx", 1), + [".m1v"] = new ContentTypeMapping("video/mpeg", null, "*.m1v", 1), + [".m2ts"] = new ContentTypeMapping("video/vnd.dlna.mpeg-tts", null, "*.m2ts", 1), + [".qt"] = new ContentTypeMapping("video/quicktime", null, "*.qt", 1), + [".ts"] = new ContentTypeMapping("video/vnd.dlna.mpeg-tts", null, "*.ts", 1), + [".tts"] = new ContentTypeMapping("video/vnd.dlna.mpeg-tts", null, "*.tts", 1), + [".wm"] = new ContentTypeMapping("video/x-ms-wm", null, "*.wm", 1), + [".wmp"] = new ContentTypeMapping("video/x-ms-wmp", null, "*.wmp", 1), + [".wmv"] = new ContentTypeMapping("video/x-ms-wmv", null, "*.wmv", 1), + [".wmx"] = new ContentTypeMapping("video/x-ms-wmx", null, "*.wmx", 1), + [".wtv"] = new ContentTypeMapping("video/x-ms-wtv", null, "*.wtv", 1), + [".wvx"] = new ContentTypeMapping("video/x-ms-wvx", null, "*.wvx", 1), + [".aac"] = new ContentTypeMapping("audio/aac", null, "*.aac", 1), + [".adt"] = new ContentTypeMapping("audio/vnd.dlna.adts", null, "*.adt", 1), + [".adts"] = new ContentTypeMapping("audio/vnd.dlna.adts", null, "*.adts", 1), + [".aif"] = new ContentTypeMapping("audio/x-aiff", null, "*.aif", 1), + [".aifc"] = new ContentTypeMapping("audio/aiff", null, "*.aifc", 1), + [".aiff"] = new ContentTypeMapping("audio/aiff", null, "*.aiff", 1), + [".au"] = new ContentTypeMapping("audio/basic", null, "*.au", 1), + [".m3u"] = new ContentTypeMapping("audio/x-mpegurl", null, "*.m3u", 1), + [".m4a"] = new ContentTypeMapping("audio/mp4", null, "*.m4a", 1), + [".mid"] = new ContentTypeMapping("audio/mid", null, "*.mid", 1), + [".midi"] = new ContentTypeMapping("audio/mid", null, "*.midi", 1), + [".mp3"] = new ContentTypeMapping("audio/mpeg", null, "*.mp3", 1), + [".oga"] = new ContentTypeMapping("audio/ogg", null, "*.oga", 1), + [".ra"] = new ContentTypeMapping("audio/x-pn-realaudio", null, "*.ra", 1), + [".ram"] = new ContentTypeMapping("audio/x-pn-realaudio", null, "*.ram", 1), + [".rmi"] = new ContentTypeMapping("audio/mid", null, "*.rmi", 1), + [".rpm"] = new ContentTypeMapping("audio/x-pn-realaudio-plugin", null, "*.rpm", 1), + [".smd"] = new ContentTypeMapping("audio/x-smd", null, "*.smd", 1), + [".smx"] = new ContentTypeMapping("audio/x-smd", null, "*.smx", 1), + [".smz"] = new ContentTypeMapping("audio/x-smd", null, "*.smz", 1), + [".snd"] = new ContentTypeMapping("audio/basic", null, "*.snd", 1), + [".spx"] = new ContentTypeMapping("audio/ogg", null, "*.spx", 1), + [".wav"] = new ContentTypeMapping("audio/wav", null, "*.wav", 1), + [".wax"] = new ContentTypeMapping("audio/x-ms-wax", null, "*.wax", 1), + [".wma"] = new ContentTypeMapping("audio/x-ms-wma", null, "*.wma", 1), + [".accdb"] = new ContentTypeMapping("application/msaccess", null, "*.accdb", 1), + [".accde"] = new ContentTypeMapping("application/msaccess", null, "*.accde", 1), + [".accdt"] = new ContentTypeMapping("application/msaccess", null, "*.accdt", 1), + [".acx"] = new ContentTypeMapping("application/internet-property-stream", null, "*.acx", 1), + [".ai"] = new ContentTypeMapping("application/postscript", null, "*.ai", 1), + [".application"] = new ContentTypeMapping("application/x-ms-application", null, "*.application", 1), + [".atom"] = new ContentTypeMapping("application/atom+xml", null, "*.atom", 1), + [".axs"] = new ContentTypeMapping("application/olescript", null, "*.axs", 1), + [".bcpio"] = new ContentTypeMapping("application/x-bcpio", null, "*.bcpio", 1), + [".cab"] = new ContentTypeMapping("application/vnd.ms-cab-compressed", null, "*.cab", 1), + [".calx"] = new ContentTypeMapping("application/vnd.ms-office.calx", null, "*.calx", 1), + [".cat"] = new ContentTypeMapping("application/vnd.ms-pki.seccat", null, "*.cat", 1), + [".cdf"] = new ContentTypeMapping("application/x-cdf", null, "*.cdf", 1), + [".class"] = new ContentTypeMapping("application/x-java-applet", null, "*.class", 1), + [".clp"] = new ContentTypeMapping("application/x-msclip", null, "*.clp", 1), + [".cpio"] = new ContentTypeMapping("application/x-cpio", null, "*.cpio", 1), + [".crd"] = new ContentTypeMapping("application/x-mscardfile", null, "*.crd", 1), + [".crl"] = new ContentTypeMapping("application/pkix-crl", null, "*.crl", 1), + [".crt"] = new ContentTypeMapping("application/x-x509-ca-cert", null, "*.crt", 1), + [".csh"] = new ContentTypeMapping("application/x-csh", null, "*.csh", 1), + [".dcr"] = new ContentTypeMapping("application/x-director", null, "*.dcr", 1), + [".der"] = new ContentTypeMapping("application/x-x509-ca-cert", null, "*.der", 1), + [".dir"] = new ContentTypeMapping("application/x-director", null, "*.dir", 1), + [".doc"] = new ContentTypeMapping("application/msword", null, "*.doc", 1), + [".docm"] = new ContentTypeMapping("application/vnd.ms-word.document.macroEnabled.12", null, "*.docm", 1), + [".docx"] = new ContentTypeMapping("application/vnd.openxmlformats-officedocument.wordprocessingml.document", null, "*.docx", 1), + [".dot"] = new ContentTypeMapping("application/msword", null, "*.dot", 1), + [".dotm"] = new ContentTypeMapping("application/vnd.ms-word.template.macroEnabled.12", null, "*.dotm", 1), + [".dotx"] = new ContentTypeMapping("application/vnd.openxmlformats-officedocument.wordprocessingml.template", null, "*.dotx", 1), + [".dvi"] = new ContentTypeMapping("application/x-dvi", null, "*.dvi", 1), + [".dwf"] = new ContentTypeMapping("drawing/x-dwf", null, "*.dwf", 1), + [".dxr"] = new ContentTypeMapping("application/x-director", null, "*.dxr", 1), + [".eml"] = new ContentTypeMapping("message/rfc822", null, "*.eml", 1), + [".eot"] = new ContentTypeMapping("application/vnd.ms-fontobject", null, "*.eot", 1), + [".eps"] = new ContentTypeMapping("application/postscript", null, "*.eps", 1), + [".evy"] = new ContentTypeMapping("application/envoy", null, "*.evy", 1), + [".exe"] = new ContentTypeMapping("application/vnd.microsoft.portable-executable", null, "*.exe", 1), + [".fdf"] = new ContentTypeMapping("application/vnd.fdf", null, "*.fdf", 1), + [".fif"] = new ContentTypeMapping("application/fractals", null, "*.fif", 1), + [".flr"] = new ContentTypeMapping("x-world/x-vrml", null, "*.flr", 1), + [".gtar"] = new ContentTypeMapping("application/x-gtar", null, "*.gtar", 1), + [".hdf"] = new ContentTypeMapping("application/x-hdf", null, "*.hdf", 1), + [".hhc"] = new ContentTypeMapping("application/x-oleobject", null, "*.hhc", 1), + [".hlp"] = new ContentTypeMapping("application/winhlp", null, "*.hlp", 1), + [".hqx"] = new ContentTypeMapping("application/mac-binhex40", null, "*.hqx", 1), + [".hta"] = new ContentTypeMapping("application/hta", null, "*.hta", 1), + [".iii"] = new ContentTypeMapping("application/x-iphone", null, "*.iii", 1), + [".ins"] = new ContentTypeMapping("application/x-internet-signup", null, "*.ins", 1), + [".isp"] = new ContentTypeMapping("application/x-internet-signup", null, "*.isp", 1), + [".jar"] = new ContentTypeMapping("application/java-archive", null, "*.jar", 1), + [".jck"] = new ContentTypeMapping("application/liquidmotion", null, "*.jck", 1), + [".jcz"] = new ContentTypeMapping("application/liquidmotion", null, "*.jcz", 1), + [".latex"] = new ContentTypeMapping("application/x-latex", null, "*.latex", 1), + [".lit"] = new ContentTypeMapping("application/x-ms-reader", null, "*.lit", 1), + [".m13"] = new ContentTypeMapping("application/x-msmediaview", null, "*.m13", 1), + [".m14"] = new ContentTypeMapping("application/x-msmediaview", null, "*.m14", 1), + [".man"] = new ContentTypeMapping("application/x-troff-man", null, "*.man", 1), + [".manifest"] = new ContentTypeMapping("application/x-ms-manifest", null, "*.manifest", 1), + [".mdb"] = new ContentTypeMapping("application/x-msaccess", null, "*.mdb", 1), + [".me"] = new ContentTypeMapping("application/x-troff-me", null, "*.me", 1), + [".mht"] = new ContentTypeMapping("message/rfc822", null, "*.mht", 1), + [".mhtml"] = new ContentTypeMapping("message/rfc822", null, "*.mhtml", 1), + [".mmf"] = new ContentTypeMapping("application/x-smaf", null, "*.mmf", 1), + [".mny"] = new ContentTypeMapping("application/x-msmoney", null, "*.mny", 1), + [".mpp"] = new ContentTypeMapping("application/vnd.ms-project", null, "*.mpp", 1), + [".ms"] = new ContentTypeMapping("application/x-troff-ms", null, "*.ms", 1), + [".mvb"] = new ContentTypeMapping("application/x-msmediaview", null, "*.mvb", 1), + [".mvc"] = new ContentTypeMapping("application/x-miva-compiled", null, "*.mvc", 1), + [".nc"] = new ContentTypeMapping("application/x-netcdf", null, "*.nc", 1), + [".nws"] = new ContentTypeMapping("message/rfc822", null, "*.nws", 1), + [".oda"] = new ContentTypeMapping("application/oda", null, "*.oda", 1), + [".ods"] = new ContentTypeMapping("application/oleobject", null, "*.ods", 1), + [".ogx"] = new ContentTypeMapping("application/ogg", null, "*.ogx", 1), + [".one"] = new ContentTypeMapping("application/onenote", null, "*.one", 1), + [".onea"] = new ContentTypeMapping("application/onenote", null, "*.onea", 1), + [".onetoc"] = new ContentTypeMapping("application/onenote", null, "*.onetoc", 1), + [".onetoc2"] = new ContentTypeMapping("application/onenote", null, "*.onetoc2", 1), + [".onetmp"] = new ContentTypeMapping("application/onenote", null, "*.onetmp", 1), + [".onepkg"] = new ContentTypeMapping("application/onenote", null, "*.onepkg", 1), + [".osdx"] = new ContentTypeMapping("application/opensearchdescription+xml", null, "*.osdx", 1), + [".p10"] = new ContentTypeMapping("application/pkcs10", null, "*.p10", 1), + [".p12"] = new ContentTypeMapping("application/x-pkcs12", null, "*.p12", 1), + [".p7b"] = new ContentTypeMapping("application/x-pkcs7-certificates", null, "*.p7b", 1), + [".p7c"] = new ContentTypeMapping("application/pkcs7-mime", null, "*.p7c", 1), + [".p7m"] = new ContentTypeMapping("application/pkcs7-mime", null, "*.p7m", 1), + [".p7r"] = new ContentTypeMapping("application/x-pkcs7-certreqresp", null, "*.p7r", 1), + [".p7s"] = new ContentTypeMapping("application/pkcs7-signature", null, "*.p7s", 1), + [".pdf"] = new ContentTypeMapping("application/pdf", null, "*.pdf", 1), + [".pfx"] = new ContentTypeMapping("application/x-pkcs12", null, "*.pfx", 1), + [".pko"] = new ContentTypeMapping("application/vnd.ms-pki.pko", null, "*.pko", 1), + [".pma"] = new ContentTypeMapping("application/x-perfmon", null, "*.pma", 1), + [".pmc"] = new ContentTypeMapping("application/x-perfmon", null, "*.pmc", 1), + [".pml"] = new ContentTypeMapping("application/x-perfmon", null, "*.pml", 1), + [".pmr"] = new ContentTypeMapping("application/x-perfmon", null, "*.pmr", 1), + [".pmw"] = new ContentTypeMapping("application/x-perfmon", null, "*.pmw", 1), + [".pot"] = new ContentTypeMapping("application/vnd.ms-powerpoint", null, "*.pot", 1), + [".potm"] = new ContentTypeMapping("application/vnd.ms-powerpoint.template.macroEnabled.12", null, "*.potm", 1), + [".potx"] = new ContentTypeMapping("application/vnd.openxmlformats-officedocument.presentationml.template", null, "*.potx", 1), + [".ppam"] = new ContentTypeMapping("application/vnd.ms-powerpoint.addin.macroEnabled.12", null, "*.ppam", 1), + [".pps"] = new ContentTypeMapping("application/vnd.ms-powerpoint", null, "*.pps", 1), + [".ppsm"] = new ContentTypeMapping("application/vnd.ms-powerpoint.slideshow.macroEnabled.12", null, "*.ppsm", 1), + [".ppsx"] = new ContentTypeMapping("application/vnd.openxmlformats-officedocument.presentationml.slideshow", null, "*.ppsx", 1), + [".ppt"] = new ContentTypeMapping("application/vnd.ms-powerpoint", null, "*.ppt", 1), + [".pptm"] = new ContentTypeMapping("application/vnd.ms-powerpoint.presentation.macroEnabled.12", null, "*.pptm", 1), + [".pptx"] = new ContentTypeMapping("application/vnd.openxmlformats-officedocument.presentationml.presentation", null, "*.pptx", 1), + [".prf"] = new ContentTypeMapping("application/pics-rules", null, "*.prf", 1), + [".ps"] = new ContentTypeMapping("application/postscript", null, "*.ps", 1), + [".pub"] = new ContentTypeMapping("application/x-mspublisher", null, "*.pub", 1), + [".qtl"] = new ContentTypeMapping("application/x-quicktimeplayer", null, "*.qtl", 1), + [".rm"] = new ContentTypeMapping("application/vnd.rn-realmedia", null, "*.rm", 1), + [".roff"] = new ContentTypeMapping("application/x-troff", null, "*.roff", 1), + [".rtf"] = new ContentTypeMapping("application/rtf", null, "*.rtf", 1), + [".scd"] = new ContentTypeMapping("application/x-msschedule", null, "*.scd", 1), + [".setpay"] = new ContentTypeMapping("application/set-payment-initiation", null, "*.setpay", 1), + [".setreg"] = new ContentTypeMapping("application/set-registration-initiation", null, "*.setreg", 1), + [".sh"] = new ContentTypeMapping("application/x-sh", null, "*.sh", 1), + [".shar"] = new ContentTypeMapping("application/x-shar", null, "*.shar", 1), + [".sit"] = new ContentTypeMapping("application/x-stuffit", null, "*.sit", 1), + [".sldm"] = new ContentTypeMapping("application/vnd.ms-powerpoint.slide.macroEnabled.12", null, "*.sldm", 1), + [".sldx"] = new ContentTypeMapping("application/vnd.openxmlformats-officedocument.presentationml.slide", null, "*.sldx", 1), + [".spc"] = new ContentTypeMapping("application/x-pkcs7-certificates", null, "*.spc", 1), + [".spl"] = new ContentTypeMapping("application/futuresplash", null, "*.spl", 1), + [".src"] = new ContentTypeMapping("application/x-wais-source", null, "*.src", 1), + [".ssm"] = new ContentTypeMapping("application/streamingmedia", null, "*.ssm", 1), + [".sst"] = new ContentTypeMapping("application/vnd.ms-pki.certstore", null, "*.sst", 1), + [".stl"] = new ContentTypeMapping("application/vnd.ms-pki.stl", null, "*.stl", 1), + [".sv4cpio"] = new ContentTypeMapping("application/x-sv4cpio", null, "*.sv4cpio", 1), + [".sv4crc"] = new ContentTypeMapping("application/x-sv4crc", null, "*.sv4crc", 1), + [".swf"] = new ContentTypeMapping("application/x-shockwave-flash", null, "*.swf", 1), + [".t"] = new ContentTypeMapping("application/x-troff", null, "*.t", 1), + [".tar"] = new ContentTypeMapping("application/x-tar", null, "*.tar", 1), + [".tcl"] = new ContentTypeMapping("application/x-tcl", null, "*.tcl", 1), + [".tex"] = new ContentTypeMapping("application/x-tex", null, "*.tex", 1), + [".texi"] = new ContentTypeMapping("application/x-texinfo", null, "*.texi", 1), + [".texinfo"] = new ContentTypeMapping("application/x-texinfo", null, "*.texinfo", 1), + [".tgz"] = new ContentTypeMapping("application/x-compressed", null, "*.tgz", 1), + [".thmx"] = new ContentTypeMapping("application/vnd.ms-officetheme", null, "*.thmx", 1), + [".tr"] = new ContentTypeMapping("application/x-troff", null, "*.tr", 1), + [".trm"] = new ContentTypeMapping("application/x-msterminal", null, "*.trm", 1), + [".ttc"] = new ContentTypeMapping("application/x-font-ttf", null, "*.ttc", 1), + [".ttf"] = new ContentTypeMapping("application/x-font-ttf", null, "*.ttf", 1), + [".ustar"] = new ContentTypeMapping("application/x-ustar", null, "*.ustar", 1), + [".vdx"] = new ContentTypeMapping("application/vnd.ms-visio.viewer", null, "*.vdx", 1), + [".vsd"] = new ContentTypeMapping("application/vnd.visio", null, "*.vsd", 1), + [".vss"] = new ContentTypeMapping("application/vnd.visio", null, "*.vss", 1), + [".vst"] = new ContentTypeMapping("application/vnd.visio", null, "*.vst", 1), + [".vsto"] = new ContentTypeMapping("application/x-ms-vsto", null, "*.vsto", 1), + [".vsw"] = new ContentTypeMapping("application/vnd.visio", null, "*.vsw", 1), + [".vsx"] = new ContentTypeMapping("application/vnd.visio", null, "*.vsx", 1), + [".vtx"] = new ContentTypeMapping("application/vnd.visio", null, "*.vtx", 1), + [".wcm"] = new ContentTypeMapping("application/vnd.ms-works", null, "*.wcm", 1), + [".wdb"] = new ContentTypeMapping("application/vnd.ms-works", null, "*.wdb", 1), + [".wks"] = new ContentTypeMapping("application/vnd.ms-works", null, "*.wks", 1), + [".wmd"] = new ContentTypeMapping("application/x-ms-wmd", null, "*.wmd", 1), + [".wmf"] = new ContentTypeMapping("application/x-msmetafile", null, "*.wmf", 1), + [".wmlc"] = new ContentTypeMapping("application/vnd.wap.wmlc", null, "*.wmlc", 1), + [".wmlsc"] = new ContentTypeMapping("application/vnd.wap.wmlscriptc", null, "*.wmlsc", 1), + [".wmz"] = new ContentTypeMapping("application/x-ms-wmz", null, "*.wmz", 1), + [".wps"] = new ContentTypeMapping("application/vnd.ms-works", null, "*.wps", 1), + [".wri"] = new ContentTypeMapping("application/x-mswrite", null, "*.wri", 1), + [".wrl"] = new ContentTypeMapping("x-world/x-vrml", null, "*.wrl", 1), + [".wrz"] = new ContentTypeMapping("x-world/x-vrml", null, "*.wrz", 1), + [".x"] = new ContentTypeMapping("application/directx", null, "*.x", 1), + [".xaf"] = new ContentTypeMapping("x-world/x-vrml", null, "*.xaf", 1), + [".xaml"] = new ContentTypeMapping("application/xaml+xml", null, "*.xaml", 1), + [".xap"] = new ContentTypeMapping("application/x-silverlight-app", null, "*.xap", 1), + [".xbap"] = new ContentTypeMapping("application/x-ms-xbap", null, "*.xbap", 1), + [".xht"] = new ContentTypeMapping("application/xhtml+xml", null, "*.xht", 1), + [".xhtml"] = new ContentTypeMapping("application/xhtml+xml", null, "*.xhtml", 1), + [".xla"] = new ContentTypeMapping("application/vnd.ms-excel", null, "*.xla", 1), + [".xlam"] = new ContentTypeMapping("application/vnd.ms-excel.addin.macroEnabled.12", null, "*.xlam", 1), + [".xlc"] = new ContentTypeMapping("application/vnd.ms-excel", null, "*.xlc", 1), + [".xlm"] = new ContentTypeMapping("application/vnd.ms-excel", null, "*.xlm", 1), + [".xls"] = new ContentTypeMapping("application/vnd.ms-excel", null, "*.xls", 1), + [".xlsb"] = new ContentTypeMapping("application/vnd.ms-excel.sheet.binary.macroEnabled.12", null, "*.xlsb", 1), + [".xlsm"] = new ContentTypeMapping("application/vnd.ms-excel.sheet.macroEnabled.12", null, "*.xlsm", 1), + [".xlsx"] = new ContentTypeMapping("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", null, "*.xlsx", 1), + [".xlt"] = new ContentTypeMapping("application/vnd.ms-excel", null, "*.xlt", 1), + [".xltm"] = new ContentTypeMapping("application/vnd.ms-excel.template.macroEnabled.12", null, "*.xltm", 1), + [".xltx"] = new ContentTypeMapping("application/vnd.openxmlformats-officedocument.spreadsheetml.template", null, "*.xltx", 1), + [".xlw"] = new ContentTypeMapping("application/vnd.ms-excel", null, "*.xlw", 1), + [".xof"] = new ContentTypeMapping("x-world/x-vrml", null, "*.xof", 1), + [".xps"] = new ContentTypeMapping("application/vnd.ms-xpsdocument", null, "*.xps", 1), + [".z"] = new ContentTypeMapping("application/x-compress", null, "*.z", 1), + [".zip"] = new ContentTypeMapping("application/x-zip-compressed", null, "*.zip", 1), + [".aaf"] = new ContentTypeMapping("application/octet-stream", null, "*.aaf", 1), + [".aca"] = new ContentTypeMapping("application/octet-stream", null, "*.aca", 1), + [".afm"] = new ContentTypeMapping("application/octet-stream", null, "*.afm", 1), + [".asd"] = new ContentTypeMapping("application/octet-stream", null, "*.asd", 1), + [".asi"] = new ContentTypeMapping("application/octet-stream", null, "*.asi", 1), + [".bin"] = new ContentTypeMapping("application/octet-stream", null, "*.bin", 1), + [".chm"] = new ContentTypeMapping("application/octet-stream", null, "*.chm", 1), + [".cur"] = new ContentTypeMapping("application/octet-stream", null, "*.cur", 1), + [".deploy"] = new ContentTypeMapping("application/octet-stream", null, "*.deploy", 1), + [".dsp"] = new ContentTypeMapping("application/octet-stream", null, "*.dsp", 1), + [".dwp"] = new ContentTypeMapping("application/octet-stream", null, "*.dwp", 1), + [".emz"] = new ContentTypeMapping("application/octet-stream", null, "*.emz", 1), + [".fla"] = new ContentTypeMapping("application/octet-stream", null, "*.fla", 1), + [".hhk"] = new ContentTypeMapping("application/octet-stream", null, "*.hhk", 1), + [".hhp"] = new ContentTypeMapping("application/octet-stream", null, "*.hhp", 1), + [".inf"] = new ContentTypeMapping("application/octet-stream", null, "*.inf", 1), + [".java"] = new ContentTypeMapping("application/octet-stream", null, "*.java", 1), + [".jpb"] = new ContentTypeMapping("application/octet-stream", null, "*.jpb", 1), + [".lpk"] = new ContentTypeMapping("application/octet-stream", null, "*.lpk", 1), + [".lzh"] = new ContentTypeMapping("application/octet-stream", null, "*.lzh", 1), + [".mdp"] = new ContentTypeMapping("application/octet-stream", null, "*.mdp", 1), + [".mix"] = new ContentTypeMapping("application/octet-stream", null, "*.mix", 1), + [".msi"] = new ContentTypeMapping("application/octet-stream", null, "*.msi", 1), + [".mso"] = new ContentTypeMapping("application/octet-stream", null, "*.mso", 1), + [".ocx"] = new ContentTypeMapping("application/octet-stream", null, "*.ocx", 1), + [".pcx"] = new ContentTypeMapping("application/octet-stream", null, "*.pcx", 1), + [".pcz"] = new ContentTypeMapping("application/octet-stream", null, "*.pcz", 1), + [".pfb"] = new ContentTypeMapping("application/octet-stream", null, "*.pfb", 1), + [".pfm"] = new ContentTypeMapping("application/octet-stream", null, "*.pfm", 1), + [".prm"] = new ContentTypeMapping("application/octet-stream", null, "*.prm", 1), + [".prx"] = new ContentTypeMapping("application/octet-stream", null, "*.prx", 1), + [".psd"] = new ContentTypeMapping("application/octet-stream", null, "*.psd", 1), + [".psm"] = new ContentTypeMapping("application/octet-stream", null, "*.psm", 1), + [".psp"] = new ContentTypeMapping("application/octet-stream", null, "*.psp", 1), + [".qxd"] = new ContentTypeMapping("application/octet-stream", null, "*.qxd", 1), + [".rar"] = new ContentTypeMapping("application/octet-stream", null, "*.rar", 1), + [".sea"] = new ContentTypeMapping("application/octet-stream", null, "*.sea", 1), + [".smi"] = new ContentTypeMapping("application/octet-stream", null, "*.smi", 1), + [".snp"] = new ContentTypeMapping("application/octet-stream", null, "*.snp", 1), + [".thn"] = new ContentTypeMapping("application/octet-stream", null, "*.thn", 1), + [".toc"] = new ContentTypeMapping("application/octet-stream", null, "*.toc", 1), + [".u32"] = new ContentTypeMapping("application/octet-stream", null, "*.u32", 1), + [".xsn"] = new ContentTypeMapping("application/octet-stream", null, "*.xsn", 1), + [".xtp"] = new ContentTypeMapping("application/octet-stream", null, "*.xtp", 1), + }; + + internal ContentTypeMapping ResolveContentTypeMapping(string relativePath, TaskLoggingHelper log) + { + var builtIn = ResolveBuiltIn(relativePath, log); + foreach (var mapping in customMappings) + { + // Nothing we've seen so far can beat the built-in mapping and entries are ordered + if (mapping.Priority < builtIn.Priority) + { + return builtIn; + } + + if (mapping.Matches(Path.GetFileName(relativePath))) + { + log.LogMessage(MessageImportance.Low, $"Matched {relativePath} to {mapping.MimeType} using pattern {mapping.Pattern}"); + return mapping; + } + else + { + log.LogMessage(MessageImportance.Low, $"No match for {relativePath} using pattern {mapping.Pattern}"); + } + } + + return builtIn; + } + + private ContentTypeMapping ResolveBuiltIn(string relativePath, TaskLoggingHelper log) + { + var extension = Path.GetExtension(relativePath); + if (extension == ".gz" || extension == ".br") + { + var fileName = Path.GetFileNameWithoutExtension(relativePath); + var subExt = Path.GetExtension(fileName); + if (subExt != "") + { + return ResolveBuiltIn(fileName, log); + } + } + + return _builtInMappings.TryGetValue(extension, out var mapping) ? mapping : default; + } +} diff --git a/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssetEndpoints.cs b/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssetEndpoints.cs index 2f1a27e35dfe..476f5ab4169b 100644 --- a/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssetEndpoints.cs +++ b/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssetEndpoints.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Build.Framework; -using Microsoft.Extensions.FileSystemGlobbing; using Microsoft.NET.Sdk.StaticWebAssets.Tasks; using System.Globalization; @@ -50,6 +49,7 @@ public override bool Execute() } var contentTypeMappings = ContentTypeMappings.Select(ContentTypeMapping.FromTaskItem).OrderByDescending(m => m.Priority).ToArray(); + var contentTypeProvider = new ContentTypeProvider(contentTypeMappings); var endpoints = new List(); foreach (var kvp in staticWebAssets) @@ -61,7 +61,7 @@ public override bool Execute() // When we define the endpoint, we apply the path to the asset as if it was coming from the current project. // If the endpoint is then passed to a referencing project or packaged into a nuget package, the path will be // adjusted at that time. - var assetEndpoints = CreateEndpoints(asset, contentTypeMappings); + var assetEndpoints = CreateEndpoints(asset, contentTypeProvider); foreach (var endpoint in assetEndpoints) { @@ -84,7 +84,7 @@ public override bool Execute() return !Log.HasLoggedErrors; } - private List CreateEndpoints(StaticWebAsset asset, ContentTypeMapping[] contentTypeMappings) + private List CreateEndpoints(StaticWebAsset asset, ContentTypeProvider contentTypeMappings) { var routes = asset.ComputeRoutes(); var result = new List(); @@ -219,56 +219,19 @@ private string GetFileLength(StaticWebAsset asset) } } - private (string mimeType, string cache) ResolveContentType(StaticWebAsset asset, ContentTypeMapping[] contentTypeMappings) + private (string mimeType, string cache) ResolveContentType(StaticWebAsset asset, ContentTypeProvider contentTypeProvider) { var relativePath = asset.ComputePathWithoutTokens(asset.RelativePath); - foreach (var mapping in contentTypeMappings) + var mapping = contentTypeProvider.ResolveContentTypeMapping(relativePath, Log); + + if (mapping.Equals(default)) { - if (mapping.Matches(Path.GetFileName(relativePath))) - { - Log.LogMessage(MessageImportance.Low, $"Matched {relativePath} to {mapping.MimeType} using pattern {mapping.Pattern}"); - return (mapping.MimeType, mapping.Cache); - } - else - { - Log.LogMessage(MessageImportance.Low, $"No match for {relativePath} using pattern {mapping.Pattern}"); - } + return (mapping.MimeType, mapping.Cache); } Log.LogMessage(MessageImportance.Low, $"No match for {relativePath}. Using default content type 'application/octet-stream'"); return ("application/octet-stream", null); } - - private class ContentTypeMapping - { - private readonly Matcher _matcher; - - public ContentTypeMapping(string mimeType, string cache, string pattern, int priority) - { - Pattern = pattern; - MimeType = mimeType; - Cache = cache; - Priority = priority; - _matcher = new Matcher(); - _matcher.AddInclude(pattern); - } - - public string Pattern { get; set; } - - public string MimeType { get; set; } - - public string Cache { get; set; } - - public int Priority { get; } - - internal static ContentTypeMapping FromTaskItem(ITaskItem contentTypeMappings) => new( - contentTypeMappings.ItemSpec, - contentTypeMappings.GetMetadata(nameof(Cache)), - contentTypeMappings.GetMetadata(nameof(Pattern)), - int.Parse(contentTypeMappings.GetMetadata(nameof(Priority)))); - - internal bool Matches(string identity) => _matcher.Match(identity).HasMatches; - } } } From 890f5dc7147e3892789e452cd2db291197bb9bb3 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Tue, 27 Aug 2024 21:26:46 +0200 Subject: [PATCH 200/209] Fix condition, clean up --- .../Tasks/Data/ContentTypeMapping.cs | 22 ++++++++----------- .../Tasks/Data/ContentTypeProvider.cs | 10 ++------- .../Tasks/DefineStaticWebAssetEndpoints.cs | 2 +- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeMapping.cs b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeMapping.cs index edf5a5221c80..cecde3e015e7 100644 --- a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeMapping.cs +++ b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeMapping.cs @@ -1,30 +1,24 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Diagnostics; using Microsoft.Build.Framework; using Microsoft.Extensions.FileSystemGlobbing; namespace Microsoft.AspNetCore.StaticWebAssets.Tasks { - internal struct ContentTypeMapping + [DebuggerDisplay($"{{{nameof(GetDebuggerDisplay)}(),nq}}")] + internal struct ContentTypeMapping(string mimeType, string cache, string pattern, int priority) { private Matcher _matcher; - public ContentTypeMapping(string mimeType, string cache, string pattern, int priority) - { - Pattern = pattern; - MimeType = mimeType; - Cache = cache; - Priority = priority; - } + public string Pattern { get; set; } = pattern; - public string Pattern { get; set; } + public string MimeType { get; set; } = mimeType; - public string MimeType { get; set; } + public string Cache { get; set; } = cache; - public string Cache { get; set; } - - public int Priority { get; } + public int Priority { get; } = priority; internal static ContentTypeMapping FromTaskItem(ITaskItem contentTypeMappings) => new( contentTypeMappings.ItemSpec, @@ -41,5 +35,7 @@ internal bool Matches(string identity) } return _matcher.Match(identity).HasMatches; } + + private string GetDebuggerDisplay() => $"Pattern: {Pattern}, MimeType: {MimeType}, Cache: {Cache}, Priority: {Priority}"; } } diff --git a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs index be818f5d863e..e38383b19858 100644 --- a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs +++ b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs @@ -408,14 +408,9 @@ internal ContentTypeMapping ResolveContentTypeMapping(string relativePath, TaskL var builtIn = ResolveBuiltIn(relativePath, log); foreach (var mapping in customMappings) { - // Nothing we've seen so far can beat the built-in mapping and entries are ordered - if (mapping.Priority < builtIn.Priority) - { - return builtIn; - } - if (mapping.Matches(Path.GetFileName(relativePath))) { + // If a custom mapping matches, it wins over the built-in log.LogMessage(MessageImportance.Low, $"Matched {relativePath} to {mapping.MimeType} using pattern {mapping.Pattern}"); return mapping; } @@ -434,8 +429,7 @@ private ContentTypeMapping ResolveBuiltIn(string relativePath, TaskLoggingHelper if (extension == ".gz" || extension == ".br") { var fileName = Path.GetFileNameWithoutExtension(relativePath); - var subExt = Path.GetExtension(fileName); - if (subExt != "") + if (Path.GetExtension(fileName) != "") { return ResolveBuiltIn(fileName, log); } diff --git a/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssetEndpoints.cs b/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssetEndpoints.cs index 476f5ab4169b..4b984f68e0ed 100644 --- a/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssetEndpoints.cs +++ b/src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssetEndpoints.cs @@ -224,7 +224,7 @@ private string GetFileLength(StaticWebAsset asset) var relativePath = asset.ComputePathWithoutTokens(asset.RelativePath); var mapping = contentTypeProvider.ResolveContentTypeMapping(relativePath, Log); - if (mapping.Equals(default)) + if (mapping.MimeType != null) { return (mapping.MimeType, mapping.Cache); } From 8efc88898325e9aa3a3ba299f9d06df489c40d7a Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Wed, 28 Aug 2024 17:28:06 +0200 Subject: [PATCH 201/209] Fix tests and update baselines --- .../Tasks/Data/ContentTypeProvider.cs | 6 +++++- ...BootJsonManifest.Build.staticwebassets.json | 4 ++-- ...oduleTargetPaths.Build.staticwebassets.json | 4 ++-- ...60Hosted_Works.Publish.staticwebassets.json | 2 +- ...bAssets_BuildMinimal_Works.Build.files.json | 4 ---- ...ildMinimal_Works.Build.staticwebassets.json | 4 ++-- ...ild_Hosted_Works.Build.staticwebassets.json | 4 ++-- ...ardLibrary_Works.Build.staticwebassets.json | 2 +- .../ApplyCompressionNegotiationTest.cs | 18 +++--------------- 9 files changed, 18 insertions(+), 30 deletions(-) diff --git a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs index e38383b19858..dea7d85e9dfb 100644 --- a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs +++ b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs @@ -431,7 +431,11 @@ private ContentTypeMapping ResolveBuiltIn(string relativePath, TaskLoggingHelper var fileName = Path.GetFileNameWithoutExtension(relativePath); if (Path.GetExtension(fileName) != "") { - return ResolveBuiltIn(fileName, log); + var result = ResolveBuiltIn(fileName, log); + // If we don't have a specific mapping for the other extension, use any mapping available for `.gz` or `.br` + return result.Equals(default) && _builtInMappings.TryGetValue(extension, out var compressed) ? + compressed : + result; } } diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Build_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Build_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Build.staticwebassets.json index cb03beae2bbf..dfef02c74bcb 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Build_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Build_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Build.staticwebassets.json @@ -35683,7 +35683,7 @@ }, { "Name": "Content-Type", - "Value": "application/x-gzip" + "Value": "text/plain" }, { "Name": "ETag", @@ -36083,7 +36083,7 @@ }, { "Name": "Content-Type", - "Value": "application/x-gzip" + "Value": "text/plain" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JSModules_ManifestIncludesModuleTargetPaths.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JSModules_ManifestIncludesModuleTargetPaths.Build.staticwebassets.json index e20cddd0ce10..1613c4abc379 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JSModules_ManifestIncludesModuleTargetPaths.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JSModules_ManifestIncludesModuleTargetPaths.Build.staticwebassets.json @@ -36602,7 +36602,7 @@ }, { "Name": "Content-Type", - "Value": "application/x-gzip" + "Value": "text/plain" }, { "Name": "ETag", @@ -37002,7 +37002,7 @@ }, { "Name": "Content-Type", - "Value": "application/x-gzip" + "Value": "text/plain" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json index d4f3b432cc81..886a5b23550b 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json @@ -9080,7 +9080,7 @@ }, { "Name": "Content-Type", - "Value": "application/x-gzip" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.files.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.files.json index 77dbb7eccde2..c041d33230f0 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.files.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.files.json @@ -803,14 +803,10 @@ "${OutputPath}\\wwwroot\\_framework\\dotnet.js.map.gz", "${OutputPath}\\wwwroot\\_framework\\dotnet.native.js", "${OutputPath}\\wwwroot\\_framework\\dotnet.native.js.gz", - "${OutputPath}\\wwwroot\\_framework\\dotnet.native.js", - "${OutputPath}\\wwwroot\\_framework\\dotnet.native.js.gz", "${OutputPath}\\wwwroot\\_framework\\dotnet.native.wasm", "${OutputPath}\\wwwroot\\_framework\\dotnet.native.wasm.gz", "${OutputPath}\\wwwroot\\_framework\\dotnet.runtime.js", "${OutputPath}\\wwwroot\\_framework\\dotnet.runtime.js.gz", - "${OutputPath}\\wwwroot\\_framework\\dotnet.runtime.js", - "${OutputPath}\\wwwroot\\_framework\\dotnet.runtime.js.gz", "${OutputPath}\\wwwroot\\_framework\\dotnet.runtime.js.map", "${OutputPath}\\wwwroot\\_framework\\dotnet.runtime.js.map.gz", "${OutputPath}\\wwwroot\\_framework\\icudt_CJK.dat", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.staticwebassets.json index a74ad6dd9f5b..95c064ce903e 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.staticwebassets.json @@ -35767,7 +35767,7 @@ }, { "Name": "Content-Type", - "Value": "application/x-gzip" + "Value": "text/plain" }, { "Name": "ETag", @@ -36167,7 +36167,7 @@ }, { "Name": "Content-Type", - "Value": "application/x-gzip" + "Value": "text/plain" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Build_Hosted_Works.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Build_Hosted_Works.Build.staticwebassets.json index 145a634827db..6727b688171e 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Build_Hosted_Works.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Build_Hosted_Works.Build.staticwebassets.json @@ -36339,7 +36339,7 @@ }, { "Name": "Content-Type", - "Value": "application/x-gzip" + "Value": "text/plain" }, { "Name": "ETag", @@ -36739,7 +36739,7 @@ }, { "Name": "Content-Type", - "Value": "application/x-gzip" + "Value": "text/plain" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json index 46483d321d56..7df396afeed3 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json @@ -28918,7 +28918,7 @@ }, { "Name": "Content-Type", - "Value": "application/x-gzip" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssets/ApplyCompressionNegotiationTest.cs b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssets/ApplyCompressionNegotiationTest.cs index 21df2de00d5c..48524f5b6b6a 100644 --- a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssets/ApplyCompressionNegotiationTest.cs +++ b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssets/ApplyCompressionNegotiationTest.cs @@ -172,19 +172,7 @@ string candidate when candidate.EndsWith(".js") => 20, BuildEngine = buildEngine.Object, CandidateAssets = [.. candidateAssets], ExistingEndpoints = [], - ContentTypeMappings = - [ - new TaskItem("text/javascript", new Dictionary - { - { "Pattern", "*.js" }, - { "Priority", "0" } - }), - new TaskItem("text/javascript", new Dictionary - { - { "Pattern", "*.js.gz" }, - { "Priority", "1" } - }) - ] + ContentTypeMappings = [] }; defineStaticAssetEndpointsTask.Execute().Should().BeTrue(); var compressed = defineStaticAssetEndpointsTask.Endpoints; @@ -447,7 +435,7 @@ string candidate when candidate.EndsWith(".js") => 20, new () { Name = "Content-Type", - Value = "application/octet-stream" + Value = "text/javascript" }, new () { @@ -753,7 +741,7 @@ string candidate when candidate.EndsWith(".js") => 20, new () { Name = "Content-Type", - Value = "application/octet-stream" + Value = "text/javascript" }, new () { From 6a867ff6af5aa68f2b13a3e9a1d78139ff252542 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Thu, 29 Aug 2024 11:05:49 +0200 Subject: [PATCH 202/209] Feedback --- src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs index dea7d85e9dfb..71a5305c6666 100644 --- a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs +++ b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs @@ -405,7 +405,6 @@ internal class ContentTypeProvider(ContentTypeMapping[] customMappings) internal ContentTypeMapping ResolveContentTypeMapping(string relativePath, TaskLoggingHelper log) { - var builtIn = ResolveBuiltIn(relativePath, log); foreach (var mapping in customMappings) { if (mapping.Matches(Path.GetFileName(relativePath))) @@ -420,7 +419,7 @@ internal ContentTypeMapping ResolveContentTypeMapping(string relativePath, TaskL } } - return builtIn; + return ResolveBuiltIn(relativePath, log); } private ContentTypeMapping ResolveBuiltIn(string relativePath, TaskLoggingHelper log) @@ -433,7 +432,7 @@ private ContentTypeMapping ResolveBuiltIn(string relativePath, TaskLoggingHelper { var result = ResolveBuiltIn(fileName, log); // If we don't have a specific mapping for the other extension, use any mapping available for `.gz` or `.br` - return result.Equals(default) && _builtInMappings.TryGetValue(extension, out var compressed) ? + return result.MimeType == null && _builtInMappings.TryGetValue(extension, out var compressed) ? compressed : result; } From 9d9a2d844feb324b8efeb55f90bc3d833e098840 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Thu, 29 Aug 2024 14:18:32 +0200 Subject: [PATCH 203/209] Feedback --- .../Publish60Hosted_Works.Publish.staticwebassets.json | 2 +- ...ferencingNetStandardLibrary_Works.Build.staticwebassets.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json index 886a5b23550b..d4f3b432cc81 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json @@ -9080,7 +9080,7 @@ }, { "Name": "Content-Type", - "Value": "application/octet-stream" + "Value": "application/x-gzip" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json index 7df396afeed3..46483d321d56 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json @@ -28918,7 +28918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octet-stream" + "Value": "application/x-gzip" }, { "Name": "ETag", From 504090dbef8e0ad6e84b50acb6ca5d6c12b14ba1 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Fri, 30 Aug 2024 19:20:50 +0200 Subject: [PATCH 204/209] [StaticWebAssets] Fix typo in some of the built-in definitions (#43138) --- .../Tasks/Data/ContentTypeProvider.cs | 6 +- ...ootJsonManifest.Build.staticwebassets.json | 24 +- ...duleTargetPaths.Build.staticwebassets.json | 30 +- ...ublishModules.Publish.staticwebassets.json | 30 +- ...0Hosted_Works.Publish.staticwebassets.json | 310 ++--- ...tJsonManifest.Publish.staticwebassets.json | 30 +- ...ldMinimal_Works.Build.staticwebassets.json | 24 +- ...ld_Hosted_Works.Build.staticwebassets.json | 30 +- ...rdLibrary_Works.Build.staticwebassets.json | 1176 ++++++++--------- ...Minimal_Works.Publish.staticwebassets.json | 30 +- ...iles_AsAssets.Publish.staticwebassets.json | 30 +- ..._Hosted_Works.Publish.staticwebassets.json | 30 +- 12 files changed, 875 insertions(+), 875 deletions(-) diff --git a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs index 71a5305c6666..0e680b60f537 100644 --- a/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs +++ b/src/StaticWebAssetsSdk/Tasks/Data/ContentTypeProvider.cs @@ -26,9 +26,9 @@ internal class ContentTypeProvider(ContentTypeMapping[] customMappings) [".htm"] = new ContentTypeMapping("text/html", null, "*.htm", 1), [".wasm"] = new ContentTypeMapping("application/wasm", null, "*.wasm", 1), [".txt"] = new ContentTypeMapping("text/plain", null, "*.txt", 1), - [".dll"] = new ContentTypeMapping("application/octect-stream", null, "*.dll", 1), - [".pdb"] = new ContentTypeMapping("application/octect-stream", null, "*.pdb", 1), - [".dat"] = new ContentTypeMapping("application/octect-stream", null, "*.dat", 1), + [".dll"] = new ContentTypeMapping("application/octet-stream", null, "*.dll", 1), + [".pdb"] = new ContentTypeMapping("application/octet-stream", null, "*.pdb", 1), + [".dat"] = new ContentTypeMapping("application/octet-stream", null, "*.dat", 1), [".webmanifest"] = new ContentTypeMapping("application/manifest+json", null, "*.webmanifest", 1), [".jsx"] = new ContentTypeMapping("text/jscript", null, "*.jsx", 1), [".markdown"] = new ContentTypeMapping("text/markdown", null, "*.markdown", 1), diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Build_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Build_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Build.staticwebassets.json index dfef02c74bcb..13026143feea 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Build_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Build_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Build.staticwebassets.json @@ -15798,7 +15798,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16094,7 +16094,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16131,7 +16131,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16168,7 +16168,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35383,7 +35383,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35434,7 +35434,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36183,7 +36183,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36234,7 +36234,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36283,7 +36283,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36334,7 +36334,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36383,7 +36383,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36434,7 +36434,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JSModules_ManifestIncludesModuleTargetPaths.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JSModules_ManifestIncludesModuleTargetPaths.Build.staticwebassets.json index 1613c4abc379..b232989a9a81 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JSModules_ManifestIncludesModuleTargetPaths.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JSModules_ManifestIncludesModuleTargetPaths.Build.staticwebassets.json @@ -10275,7 +10275,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16417,7 +16417,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16713,7 +16713,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16750,7 +16750,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16787,7 +16787,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19702,7 +19702,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19753,7 +19753,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36302,7 +36302,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36353,7 +36353,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37102,7 +37102,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37153,7 +37153,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37202,7 +37202,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37253,7 +37253,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37302,7 +37302,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37353,7 +37353,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JsModules_CanHaveDifferentBuildAndPublishModules.Publish.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JsModules_CanHaveDifferentBuildAndPublishModules.Publish.staticwebassets.json index 24b38ead3caa..ff21514b4b22 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JsModules_CanHaveDifferentBuildAndPublishModules.Publish.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/JsModules_CanHaveDifferentBuildAndPublishModules.Publish.staticwebassets.json @@ -4947,7 +4947,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4984,7 +4984,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5021,7 +5021,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19007,7 +19007,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19058,7 +19058,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19107,7 +19107,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19158,7 +19158,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19207,7 +19207,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19258,7 +19258,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19307,7 +19307,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19358,7 +19358,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19407,7 +19407,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19458,7 +19458,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19507,7 +19507,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19558,7 +19558,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json index d4f3b432cc81..6731e6c2cf98 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish60Hosted_Works.Publish.staticwebassets.json @@ -2528,7 +2528,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -2565,7 +2565,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -2602,7 +2602,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -2980,7 +2980,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3031,7 +3031,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3080,7 +3080,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3131,7 +3131,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3180,7 +3180,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3231,7 +3231,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3280,7 +3280,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3331,7 +3331,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3380,7 +3380,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3431,7 +3431,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3480,7 +3480,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3531,7 +3531,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3580,7 +3580,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3631,7 +3631,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3680,7 +3680,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3731,7 +3731,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3780,7 +3780,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3831,7 +3831,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3880,7 +3880,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3931,7 +3931,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -3980,7 +3980,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4031,7 +4031,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4080,7 +4080,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4131,7 +4131,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4180,7 +4180,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4231,7 +4231,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4280,7 +4280,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4331,7 +4331,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4380,7 +4380,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4431,7 +4431,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4480,7 +4480,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4531,7 +4531,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4580,7 +4580,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4631,7 +4631,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4680,7 +4680,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4731,7 +4731,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4780,7 +4780,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4831,7 +4831,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4880,7 +4880,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4931,7 +4931,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4980,7 +4980,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5031,7 +5031,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5080,7 +5080,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5131,7 +5131,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5180,7 +5180,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5231,7 +5231,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5280,7 +5280,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5331,7 +5331,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5380,7 +5380,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5431,7 +5431,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5480,7 +5480,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5531,7 +5531,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5580,7 +5580,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5631,7 +5631,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5680,7 +5680,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5731,7 +5731,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5780,7 +5780,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5831,7 +5831,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5880,7 +5880,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5931,7 +5931,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5980,7 +5980,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6031,7 +6031,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6080,7 +6080,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6131,7 +6131,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6180,7 +6180,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6231,7 +6231,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6280,7 +6280,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6331,7 +6331,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6380,7 +6380,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6431,7 +6431,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6480,7 +6480,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6531,7 +6531,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6580,7 +6580,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6631,7 +6631,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6680,7 +6680,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6731,7 +6731,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6780,7 +6780,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6831,7 +6831,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6880,7 +6880,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6931,7 +6931,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -6980,7 +6980,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7031,7 +7031,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7080,7 +7080,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7131,7 +7131,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7180,7 +7180,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7231,7 +7231,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7280,7 +7280,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7331,7 +7331,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7380,7 +7380,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7431,7 +7431,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7480,7 +7480,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7531,7 +7531,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7580,7 +7580,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7631,7 +7631,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7680,7 +7680,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7731,7 +7731,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7780,7 +7780,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7831,7 +7831,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7880,7 +7880,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7931,7 +7931,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -7980,7 +7980,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8031,7 +8031,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8080,7 +8080,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8131,7 +8131,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8180,7 +8180,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8231,7 +8231,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8280,7 +8280,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8331,7 +8331,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8380,7 +8380,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8431,7 +8431,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8480,7 +8480,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -8531,7 +8531,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9280,7 +9280,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9331,7 +9331,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9380,7 +9380,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9431,7 +9431,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9480,7 +9480,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9531,7 +9531,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9580,7 +9580,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9631,7 +9631,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9680,7 +9680,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9731,7 +9731,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9780,7 +9780,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9831,7 +9831,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9876,7 +9876,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9913,7 +9913,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9950,7 +9950,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9987,7 +9987,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10024,7 +10024,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10061,7 +10061,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10098,7 +10098,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10135,7 +10135,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10172,7 +10172,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10209,7 +10209,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10246,7 +10246,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10283,7 +10283,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10320,7 +10320,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10357,7 +10357,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10394,7 +10394,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10431,7 +10431,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10468,7 +10468,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10505,7 +10505,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10542,7 +10542,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10579,7 +10579,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10616,7 +10616,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10653,7 +10653,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10690,7 +10690,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10727,7 +10727,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10764,7 +10764,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10801,7 +10801,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10838,7 +10838,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10875,7 +10875,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Publish.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Publish.staticwebassets.json index 3e654b0cb3fd..fef345cbcfed 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Publish.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/Publish_DoesNotGenerateManifestJson_IncludesJSModulesOnBlazorBootJsonManifest.Publish.staticwebassets.json @@ -4947,7 +4947,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -4984,7 +4984,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5021,7 +5021,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19007,7 +19007,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19058,7 +19058,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19107,7 +19107,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19158,7 +19158,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19207,7 +19207,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19258,7 +19258,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19307,7 +19307,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19358,7 +19358,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19407,7 +19407,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19458,7 +19458,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19507,7 +19507,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19558,7 +19558,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.staticwebassets.json index 95c064ce903e..7d3ea2824a48 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_BuildMinimal_Works.Build.staticwebassets.json @@ -15882,7 +15882,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16178,7 +16178,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16215,7 +16215,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16252,7 +16252,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35467,7 +35467,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35518,7 +35518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36267,7 +36267,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36318,7 +36318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36367,7 +36367,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36418,7 +36418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36467,7 +36467,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36518,7 +36518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Build_Hosted_Works.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Build_Hosted_Works.Build.staticwebassets.json index 6727b688171e..2a7f4c1d7f83 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Build_Hosted_Works.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Build_Hosted_Works.Build.staticwebassets.json @@ -10012,7 +10012,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16154,7 +16154,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16450,7 +16450,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16487,7 +16487,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16524,7 +16524,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19439,7 +19439,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19490,7 +19490,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36039,7 +36039,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36090,7 +36090,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36839,7 +36839,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36890,7 +36890,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36939,7 +36939,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36990,7 +36990,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37039,7 +37039,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37090,7 +37090,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json index 46483d321d56..74e14bcbce7d 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_HostedApp_ReferencingNetStandardLibrary_Works.Build.staticwebassets.json @@ -9107,7 +9107,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9158,7 +9158,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9407,7 +9407,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9458,7 +9458,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9507,7 +9507,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -9558,7 +9558,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10040,7 +10040,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10077,7 +10077,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10118,7 +10118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10169,7 +10169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10218,7 +10218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10269,7 +10269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10318,7 +10318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10369,7 +10369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10418,7 +10418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10469,7 +10469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10518,7 +10518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10569,7 +10569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10618,7 +10618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10669,7 +10669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10718,7 +10718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10769,7 +10769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10818,7 +10818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10869,7 +10869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10918,7 +10918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -10969,7 +10969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11018,7 +11018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11069,7 +11069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11118,7 +11118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11169,7 +11169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11218,7 +11218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11269,7 +11269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11318,7 +11318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11369,7 +11369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11418,7 +11418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11469,7 +11469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11518,7 +11518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11569,7 +11569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11618,7 +11618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11669,7 +11669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11718,7 +11718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11769,7 +11769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11818,7 +11818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11869,7 +11869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11918,7 +11918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -11969,7 +11969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12018,7 +12018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12069,7 +12069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12118,7 +12118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12169,7 +12169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12218,7 +12218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12269,7 +12269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12318,7 +12318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12369,7 +12369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12418,7 +12418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12469,7 +12469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12518,7 +12518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12569,7 +12569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12618,7 +12618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12669,7 +12669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12718,7 +12718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12769,7 +12769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12818,7 +12818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12869,7 +12869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12918,7 +12918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -12969,7 +12969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13018,7 +13018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13069,7 +13069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13118,7 +13118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13169,7 +13169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13218,7 +13218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13269,7 +13269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13318,7 +13318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13369,7 +13369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13418,7 +13418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13469,7 +13469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13518,7 +13518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13569,7 +13569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13618,7 +13618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13669,7 +13669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13718,7 +13718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13769,7 +13769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13818,7 +13818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13869,7 +13869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13918,7 +13918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -13969,7 +13969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14018,7 +14018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14069,7 +14069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14118,7 +14118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14169,7 +14169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14218,7 +14218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14269,7 +14269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14318,7 +14318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14369,7 +14369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14418,7 +14418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14469,7 +14469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14518,7 +14518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14569,7 +14569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14618,7 +14618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14669,7 +14669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14718,7 +14718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14769,7 +14769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14818,7 +14818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14869,7 +14869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14918,7 +14918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -14969,7 +14969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15018,7 +15018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15069,7 +15069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15118,7 +15118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15169,7 +15169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15218,7 +15218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15269,7 +15269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15318,7 +15318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15369,7 +15369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15418,7 +15418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15469,7 +15469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15518,7 +15518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15569,7 +15569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15618,7 +15618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15669,7 +15669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15718,7 +15718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15769,7 +15769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15818,7 +15818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15869,7 +15869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15918,7 +15918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -15969,7 +15969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16018,7 +16018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16069,7 +16069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16118,7 +16118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16169,7 +16169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16218,7 +16218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16269,7 +16269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16318,7 +16318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16369,7 +16369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16418,7 +16418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16469,7 +16469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16518,7 +16518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16569,7 +16569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16618,7 +16618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16669,7 +16669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16718,7 +16718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16769,7 +16769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16818,7 +16818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16869,7 +16869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16918,7 +16918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -16969,7 +16969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17018,7 +17018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17069,7 +17069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17118,7 +17118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17169,7 +17169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17218,7 +17218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17269,7 +17269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17318,7 +17318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17369,7 +17369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17418,7 +17418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17469,7 +17469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17518,7 +17518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17569,7 +17569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17618,7 +17618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17669,7 +17669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17718,7 +17718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17769,7 +17769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17818,7 +17818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17869,7 +17869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17918,7 +17918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -17969,7 +17969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18018,7 +18018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18069,7 +18069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18118,7 +18118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18169,7 +18169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18218,7 +18218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18269,7 +18269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18318,7 +18318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18369,7 +18369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18418,7 +18418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18469,7 +18469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18518,7 +18518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18569,7 +18569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18618,7 +18618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18669,7 +18669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18718,7 +18718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18769,7 +18769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18818,7 +18818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18869,7 +18869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18918,7 +18918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -18969,7 +18969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19018,7 +19018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19069,7 +19069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19118,7 +19118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19169,7 +19169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19218,7 +19218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19269,7 +19269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19318,7 +19318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19369,7 +19369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19418,7 +19418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19469,7 +19469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19518,7 +19518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19569,7 +19569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19618,7 +19618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19669,7 +19669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19718,7 +19718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19769,7 +19769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19818,7 +19818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19869,7 +19869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19918,7 +19918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19969,7 +19969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20018,7 +20018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20069,7 +20069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20118,7 +20118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20169,7 +20169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20218,7 +20218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20269,7 +20269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20318,7 +20318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20369,7 +20369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20418,7 +20418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20469,7 +20469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20518,7 +20518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20569,7 +20569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20618,7 +20618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20669,7 +20669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20718,7 +20718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20769,7 +20769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20818,7 +20818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20869,7 +20869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20918,7 +20918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20969,7 +20969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21018,7 +21018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21069,7 +21069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21118,7 +21118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21169,7 +21169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21218,7 +21218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21269,7 +21269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21318,7 +21318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21369,7 +21369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21418,7 +21418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21469,7 +21469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21518,7 +21518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21569,7 +21569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21618,7 +21618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21669,7 +21669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21718,7 +21718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21769,7 +21769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21818,7 +21818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21869,7 +21869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21918,7 +21918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -21969,7 +21969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22018,7 +22018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22069,7 +22069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22118,7 +22118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22169,7 +22169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22218,7 +22218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22269,7 +22269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22318,7 +22318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22369,7 +22369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22418,7 +22418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22469,7 +22469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22518,7 +22518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22569,7 +22569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22618,7 +22618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22669,7 +22669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22718,7 +22718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22769,7 +22769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22818,7 +22818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22869,7 +22869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22918,7 +22918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -22969,7 +22969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23018,7 +23018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23069,7 +23069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23118,7 +23118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23169,7 +23169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23218,7 +23218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23269,7 +23269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23318,7 +23318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23369,7 +23369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23418,7 +23418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23469,7 +23469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23518,7 +23518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23569,7 +23569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23618,7 +23618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23669,7 +23669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23718,7 +23718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23769,7 +23769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23818,7 +23818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23869,7 +23869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23918,7 +23918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -23969,7 +23969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24018,7 +24018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24069,7 +24069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24118,7 +24118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24169,7 +24169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24218,7 +24218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24269,7 +24269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24318,7 +24318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24369,7 +24369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24418,7 +24418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24469,7 +24469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24518,7 +24518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24569,7 +24569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24618,7 +24618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24669,7 +24669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24718,7 +24718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24769,7 +24769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24818,7 +24818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24869,7 +24869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24918,7 +24918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -24969,7 +24969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25018,7 +25018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25069,7 +25069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25118,7 +25118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25169,7 +25169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25218,7 +25218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25269,7 +25269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25318,7 +25318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25369,7 +25369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25418,7 +25418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25469,7 +25469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25518,7 +25518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25569,7 +25569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25618,7 +25618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25669,7 +25669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25718,7 +25718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25769,7 +25769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25818,7 +25818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25869,7 +25869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25918,7 +25918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -25969,7 +25969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26018,7 +26018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26069,7 +26069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26118,7 +26118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26169,7 +26169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26218,7 +26218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26269,7 +26269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26318,7 +26318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26369,7 +26369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26418,7 +26418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26469,7 +26469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26518,7 +26518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26569,7 +26569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26618,7 +26618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26669,7 +26669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26718,7 +26718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26769,7 +26769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26818,7 +26818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26869,7 +26869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26918,7 +26918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -26969,7 +26969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27018,7 +27018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27069,7 +27069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27118,7 +27118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27169,7 +27169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27218,7 +27218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27269,7 +27269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27318,7 +27318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27369,7 +27369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27418,7 +27418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27469,7 +27469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27518,7 +27518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27569,7 +27569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27618,7 +27618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27669,7 +27669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27718,7 +27718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27769,7 +27769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27818,7 +27818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27869,7 +27869,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27918,7 +27918,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -27969,7 +27969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28018,7 +28018,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28069,7 +28069,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28118,7 +28118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28169,7 +28169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28218,7 +28218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28269,7 +28269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28318,7 +28318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28369,7 +28369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28418,7 +28418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28469,7 +28469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28518,7 +28518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28569,7 +28569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28618,7 +28618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28669,7 +28669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28718,7 +28718,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -28769,7 +28769,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29118,7 +29118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29169,7 +29169,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29218,7 +29218,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29269,7 +29269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29318,7 +29318,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29369,7 +29369,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29418,7 +29418,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29469,7 +29469,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29518,7 +29518,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29569,7 +29569,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29618,7 +29618,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29669,7 +29669,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29936,7 +29936,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -29973,7 +29973,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30084,7 +30084,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30121,7 +30121,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30158,7 +30158,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30232,7 +30232,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30269,7 +30269,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30306,7 +30306,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30343,7 +30343,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30380,7 +30380,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30417,7 +30417,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30454,7 +30454,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30491,7 +30491,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30528,7 +30528,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30565,7 +30565,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30602,7 +30602,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30639,7 +30639,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30676,7 +30676,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30713,7 +30713,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30750,7 +30750,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30787,7 +30787,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30824,7 +30824,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30861,7 +30861,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30898,7 +30898,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30935,7 +30935,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -30972,7 +30972,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31009,7 +31009,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31046,7 +31046,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31083,7 +31083,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31120,7 +31120,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31157,7 +31157,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31194,7 +31194,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31231,7 +31231,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31268,7 +31268,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31305,7 +31305,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31342,7 +31342,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31379,7 +31379,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31416,7 +31416,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31453,7 +31453,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31490,7 +31490,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31527,7 +31527,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31564,7 +31564,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31601,7 +31601,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31638,7 +31638,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31675,7 +31675,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31712,7 +31712,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31749,7 +31749,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31786,7 +31786,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31823,7 +31823,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31860,7 +31860,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31897,7 +31897,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31934,7 +31934,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -31971,7 +31971,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32008,7 +32008,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32045,7 +32045,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32082,7 +32082,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32119,7 +32119,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32156,7 +32156,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32193,7 +32193,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32230,7 +32230,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32267,7 +32267,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32304,7 +32304,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32341,7 +32341,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32378,7 +32378,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32415,7 +32415,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32452,7 +32452,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32489,7 +32489,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32526,7 +32526,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32563,7 +32563,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32600,7 +32600,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32637,7 +32637,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32674,7 +32674,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32711,7 +32711,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32748,7 +32748,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32785,7 +32785,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32822,7 +32822,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32859,7 +32859,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32896,7 +32896,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32933,7 +32933,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -32970,7 +32970,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33007,7 +33007,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33044,7 +33044,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33081,7 +33081,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33118,7 +33118,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33155,7 +33155,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33192,7 +33192,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33229,7 +33229,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33266,7 +33266,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33303,7 +33303,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33340,7 +33340,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33377,7 +33377,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33414,7 +33414,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33451,7 +33451,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33488,7 +33488,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33525,7 +33525,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33562,7 +33562,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33599,7 +33599,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33636,7 +33636,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33673,7 +33673,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33710,7 +33710,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33747,7 +33747,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33784,7 +33784,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33821,7 +33821,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33858,7 +33858,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33895,7 +33895,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33932,7 +33932,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -33969,7 +33969,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34006,7 +34006,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34043,7 +34043,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34080,7 +34080,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34117,7 +34117,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34154,7 +34154,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34191,7 +34191,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34228,7 +34228,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34265,7 +34265,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34302,7 +34302,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34339,7 +34339,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34376,7 +34376,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34413,7 +34413,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34450,7 +34450,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34487,7 +34487,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34524,7 +34524,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34561,7 +34561,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34598,7 +34598,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34635,7 +34635,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34672,7 +34672,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34709,7 +34709,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34746,7 +34746,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34783,7 +34783,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34820,7 +34820,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34857,7 +34857,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34894,7 +34894,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34931,7 +34931,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -34968,7 +34968,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35005,7 +35005,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35042,7 +35042,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35079,7 +35079,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35116,7 +35116,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35153,7 +35153,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35190,7 +35190,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35227,7 +35227,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35264,7 +35264,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35301,7 +35301,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35338,7 +35338,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35375,7 +35375,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35412,7 +35412,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35449,7 +35449,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35486,7 +35486,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35523,7 +35523,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35560,7 +35560,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35597,7 +35597,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35634,7 +35634,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35671,7 +35671,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35708,7 +35708,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35745,7 +35745,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35782,7 +35782,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35819,7 +35819,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35856,7 +35856,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35893,7 +35893,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35930,7 +35930,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -35967,7 +35967,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36004,7 +36004,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36041,7 +36041,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36078,7 +36078,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36115,7 +36115,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36152,7 +36152,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36189,7 +36189,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36226,7 +36226,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36263,7 +36263,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36300,7 +36300,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36337,7 +36337,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36374,7 +36374,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36411,7 +36411,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36448,7 +36448,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36485,7 +36485,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36522,7 +36522,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36559,7 +36559,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36596,7 +36596,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36633,7 +36633,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36670,7 +36670,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36707,7 +36707,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36744,7 +36744,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36781,7 +36781,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36818,7 +36818,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36855,7 +36855,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36892,7 +36892,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36929,7 +36929,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -36966,7 +36966,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37003,7 +37003,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37114,7 +37114,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37151,7 +37151,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37188,7 +37188,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37225,7 +37225,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -37262,7 +37262,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_PublishMinimal_Works.Publish.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_PublishMinimal_Works.Publish.staticwebassets.json index 6e5dabd6252b..324cc4216a0c 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_PublishMinimal_Works.Publish.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_PublishMinimal_Works.Publish.staticwebassets.json @@ -5073,7 +5073,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5110,7 +5110,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5147,7 +5147,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19557,7 +19557,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19608,7 +19608,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19657,7 +19657,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19708,7 +19708,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19757,7 +19757,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19808,7 +19808,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19857,7 +19857,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19908,7 +19908,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19957,7 +19957,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20008,7 +20008,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20057,7 +20057,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20108,7 +20108,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Publish_DoesNotIncludeXmlDocumentationFiles_AsAssets.Publish.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Publish_DoesNotIncludeXmlDocumentationFiles_AsAssets.Publish.staticwebassets.json index 8762b3cd34d0..b324defb3ec9 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Publish_DoesNotIncludeXmlDocumentationFiles_AsAssets.Publish.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Publish_DoesNotIncludeXmlDocumentationFiles_AsAssets.Publish.staticwebassets.json @@ -5392,7 +5392,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5429,7 +5429,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5466,7 +5466,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19960,7 +19960,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20011,7 +20011,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20060,7 +20060,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20111,7 +20111,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20160,7 +20160,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20211,7 +20211,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20260,7 +20260,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20311,7 +20311,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20360,7 +20360,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20411,7 +20411,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20460,7 +20460,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20511,7 +20511,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", diff --git a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Publish_Hosted_Works.Publish.staticwebassets.json b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Publish_Hosted_Works.Publish.staticwebassets.json index 8762b3cd34d0..b324defb3ec9 100644 --- a/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Publish_Hosted_Works.Publish.staticwebassets.json +++ b/test/Microsoft.NET.Sdk.BlazorWebAssembly.Tests/StaticWebAssetsBaselines/StaticWebAssets_Publish_Hosted_Works.Publish.staticwebassets.json @@ -5392,7 +5392,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5429,7 +5429,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -5466,7 +5466,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -19960,7 +19960,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20011,7 +20011,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20060,7 +20060,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20111,7 +20111,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20160,7 +20160,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20211,7 +20211,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20260,7 +20260,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20311,7 +20311,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20360,7 +20360,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20411,7 +20411,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20460,7 +20460,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", @@ -20511,7 +20511,7 @@ }, { "Name": "Content-Type", - "Value": "application/octect-stream" + "Value": "application/octet-stream" }, { "Name": "ETag", From 06e0c84d0dd83d83b282306d587edd457d57aa46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Mon, 9 Sep 2024 13:07:38 -0700 Subject: [PATCH 205/209] Fix issues with Blazor WASM delta applier (#43271) --- .../dotnet-watch/Browser/BrowserConnector.cs | 28 ++++--- .../Browser/BrowserRefreshServer.cs | 36 ++++++-- .../dotnet-watch/EnvironmentOptions.cs | 2 +- .../BlazorWebAssemblyDeltaApplier.cs | 77 ++++++++++-------- .../BlazorWebAssemblyHostedDeltaApplier.cs | 6 +- .../HotReload/CompilationHandler.cs | 2 +- .../HotReload/IncrementalMSBuildWorkspace.cs | 34 ++++++-- .../dotnet-watch/Internal/IReporter.cs | 3 + .../Microsoft.NET.TestFramework.csproj | 4 + test/Microsoft.NET.TestFramework/TestAsset.cs | 8 +- .../ToolsetInfo.cs | 42 ++-------- .../TestProjects/WatchBlazorWasm/App.razor | 8 ++ .../WatchBlazorWasm/Pages/Index.razor | 5 ++ .../TestProjects/WatchBlazorWasm/Program.cs | 11 +++ .../Properties/launchSettings.json | 13 +++ .../WatchBlazorWasm/_Imports.razor | 2 + .../WatchBlazorWasm/blazorwasm.csproj | 23 ++++++ .../WatchBlazorWasm/icudt_custom.dat | Bin 0 -> 538240 bytes .../WatchBlazorWasm/wwwroot/css/app.css | 1 + .../WatchBlazorWasm/wwwroot/index.html | 24 ++++++ .../WatchBrowserLaunchApp.csproj | 3 +- .../HotReload/ApplyDeltaTests.cs | 25 ++++++ .../Watch/BrowserLaunchTests.cs | 8 +- .../Watch/DotNetWatcherTests.cs | 6 +- .../Watch/Utilities/WatchableApp.cs | 12 +-- 25 files changed, 269 insertions(+), 114 deletions(-) create mode 100644 test/TestAssets/TestProjects/WatchBlazorWasm/App.razor create mode 100644 test/TestAssets/TestProjects/WatchBlazorWasm/Pages/Index.razor create mode 100644 test/TestAssets/TestProjects/WatchBlazorWasm/Program.cs create mode 100644 test/TestAssets/TestProjects/WatchBlazorWasm/Properties/launchSettings.json create mode 100644 test/TestAssets/TestProjects/WatchBlazorWasm/_Imports.razor create mode 100644 test/TestAssets/TestProjects/WatchBlazorWasm/blazorwasm.csproj create mode 100644 test/TestAssets/TestProjects/WatchBlazorWasm/icudt_custom.dat create mode 100644 test/TestAssets/TestProjects/WatchBlazorWasm/wwwroot/css/app.css create mode 100644 test/TestAssets/TestProjects/WatchBlazorWasm/wwwroot/index.html diff --git a/src/BuiltInTools/dotnet-watch/Browser/BrowserConnector.cs b/src/BuiltInTools/dotnet-watch/Browser/BrowserConnector.cs index b4a695ab0d8a..e5e90a0bf361 100644 --- a/src/BuiltInTools/dotnet-watch/Browser/BrowserConnector.cs +++ b/src/BuiltInTools/dotnet-watch/Browser/BrowserConnector.cs @@ -6,6 +6,7 @@ using System.Diagnostics.CodeAnalysis; using System.Text.RegularExpressions; using Microsoft.Build.Graph; +using Microsoft.Extensions.Tools.Internal; namespace Microsoft.DotNet.Watcher.Tools { @@ -51,9 +52,6 @@ await Task.WhenAll(serversToDispose.Select(async server => ProjectOptions projectOptions, CancellationToken cancellationToken) { - // Attach trigger to the process that launches browser on URL found in the process output: - processSpec.OnOutput += GetBrowserLaunchTrigger(projectNode, projectOptions, cancellationToken); - BrowserRefreshServer? server; bool hasExistingServer; @@ -67,6 +65,9 @@ await Task.WhenAll(serversToDispose.Select(async server => } } + // Attach trigger to the process that launches browser on URL found in the process output: + processSpec.OnOutput += GetBrowserLaunchTrigger(projectNode, projectOptions, server, cancellationToken); + if (server == null) { // browser refresh server isn't supported @@ -99,11 +100,11 @@ public bool TryGetRefreshServer(ProjectGraphNode projectNode, [NotNullWhen(true) /// /// Get process output handler that will be subscribed to the process output event every time the process is launched. /// - public DataReceivedEventHandler? GetBrowserLaunchTrigger(ProjectGraphNode projectNode, ProjectOptions projectOptions, CancellationToken cancellationToken) + public DataReceivedEventHandler? GetBrowserLaunchTrigger(ProjectGraphNode projectNode, ProjectOptions projectOptions, BrowserRefreshServer? server, CancellationToken cancellationToken) { if (!CanLaunchBrowser(context, projectNode, projectOptions, out var launchProfile)) { - if (context.EnvironmentOptions.TestFlags.HasFlag(TestFlags.BrowserRequired)) + if (context.EnvironmentOptions.TestFlags.HasFlag(TestFlags.MockBrowser)) { context.Reporter.Error("Test requires browser to launch"); } @@ -130,9 +131,9 @@ void handler(object sender, DataReceivedEventArgs eventArgs) if (projectAddedToAttemptedSet) { // first iteration: - LaunchBrowser(launchProfile, match.Groups["url"].Value); + LaunchBrowser(launchProfile, match.Groups["url"].Value, server); } - else if (TryGetRefreshServer(projectNode, out var server)) + else if (server != null) { // Subsequent iterations (project has been rebuilt and relaunched). // Use refresh server to reload the browser, if available. @@ -142,7 +143,7 @@ void handler(object sender, DataReceivedEventArgs eventArgs) } } - private void LaunchBrowser(LaunchSettingsProfile launchProfile, string launchUrl) + private void LaunchBrowser(LaunchSettingsProfile launchProfile, string launchUrl, BrowserRefreshServer? server) { var launchPath = launchProfile.LaunchUrl; var fileName = Uri.TryCreate(launchPath, UriKind.Absolute, out _) ? launchPath : launchUrl + "/" + launchPath; @@ -158,6 +159,12 @@ private void LaunchBrowser(LaunchSettingsProfile launchProfile, string launchUrl if (context.EnvironmentOptions.TestFlags != TestFlags.None) { + if (context.EnvironmentOptions.TestFlags.HasFlag(TestFlags.MockBrowser)) + { + Debug.Assert(server != null); + server.EmulateClientConnected(); + } + return; } @@ -217,7 +224,7 @@ private bool CanLaunchBrowser(DotNetWatchContext context, ProjectGraphNode proje return false; } - reporter.Verbose("dotnet-watch is configured to launch a browser on ASP.NET Core application startup."); + reporter.Report(MessageDescriptor.ConfiguredToLaunchBrowser); return true; } @@ -243,8 +250,7 @@ public bool IsServerSupported(ProjectGraphNode projectNode) return false; } - context.Reporter.Verbose("Configuring the app to use browser-refresh middleware."); - + context.Reporter.Report(MessageDescriptor.ConfiguredToUseBrowserRefresh); return true; } diff --git a/src/BuiltInTools/dotnet-watch/Browser/BrowserRefreshServer.cs b/src/BuiltInTools/dotnet-watch/Browser/BrowserRefreshServer.cs index 0a630a3c7550..52fbc003ed1f 100644 --- a/src/BuiltInTools/dotnet-watch/Browser/BrowserRefreshServer.cs +++ b/src/BuiltInTools/dotnet-watch/Browser/BrowserRefreshServer.cs @@ -30,7 +30,7 @@ internal sealed class BrowserRefreshServer : IAsyncDisposable private readonly JsonSerializerOptions _jsonSerializerOptions = new(JsonSerializerDefaults.Web); private readonly List<(WebSocket clientSocket, string? sharedSecret)> _clientSockets = new(); private readonly RSA _rsa; - private readonly EnvironmentOptions _options; + private readonly IReporter _reporter; private readonly TaskCompletionSource _terminateWebSocket; private readonly TaskCompletionSource _clientConnected; @@ -40,10 +40,12 @@ internal sealed class BrowserRefreshServer : IAsyncDisposable private IHost? _refreshServer; private string? _serverUrls; + public readonly EnvironmentOptions Options; + public BrowserRefreshServer(EnvironmentOptions options, IReporter reporter) { _rsa = RSA.Create(2048); - _options = options; + Options = options; _reporter = reporter; _terminateWebSocket = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); _clientConnected = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); @@ -150,16 +152,35 @@ private async Task WebSocketRequest(HttpContext context) await _terminateWebSocket.Task; } + /// + /// For testing. + /// + internal void EmulateClientConnected() + { + _clientConnected.TrySetResult(); + } + public async Task WaitForClientConnectionAsync(CancellationToken cancellationToken) { using var progressCancellationSource = new CancellationTokenSource(); + // It make take a while to connect since the app might need to build first. + // Indicate progress in the output. Start with 60s and then report progress every 10s. + var firstReportSeconds = TimeSpan.FromSeconds(60); + var nextReportSeconds = TimeSpan.FromSeconds(10); + + var reportDelayInSeconds = firstReportSeconds; + var connectionAttemptReported = false; + var progressReportingTask = Task.Run(async () => { while (!progressCancellationSource.Token.IsCancellationRequested) { - await Task.Delay(_options.TestFlags != TestFlags.None ? TimeSpan.MaxValue : TimeSpan.FromSeconds(5), progressCancellationSource.Token); - _reporter.Warn("Connecting to the browser is taking longer than expected ..."); + await Task.Delay(Options.TestFlags != TestFlags.None ? TimeSpan.MaxValue : reportDelayInSeconds, progressCancellationSource.Token); + + connectionAttemptReported = true; + reportDelayInSeconds = nextReportSeconds; + _reporter.Output("Connecting to the browser ..."); } }, progressCancellationSource.Token); @@ -171,6 +192,11 @@ public async Task WaitForClientConnectionAsync(CancellationToken cancellationTok { progressCancellationSource.Cancel(); } + + if (connectionAttemptReported) + { + _reporter.Output("Browser connection established."); + } } public ValueTask SendJsonSerlialized(TValue value, CancellationToken cancellationToken = default) @@ -286,7 +312,7 @@ private async Task SupportsTLS() { try { - using var process = Process.Start(_options.MuxerPath, "dev-certs https --check --quiet"); + using var process = Process.Start(Options.MuxerPath, "dev-certs https --check --quiet"); await process.WaitForExitAsync().WaitAsync(TimeSpan.FromSeconds(10)); return process.ExitCode == 0; } diff --git a/src/BuiltInTools/dotnet-watch/EnvironmentOptions.cs b/src/BuiltInTools/dotnet-watch/EnvironmentOptions.cs index 3ff02122b23e..fd4df470eba7 100644 --- a/src/BuiltInTools/dotnet-watch/EnvironmentOptions.cs +++ b/src/BuiltInTools/dotnet-watch/EnvironmentOptions.cs @@ -10,7 +10,7 @@ internal enum TestFlags { None = 0, RunningAsTest = 1 << 0, - BrowserRequired = 1 << 1, + MockBrowser = 1 << 1, } internal sealed record EnvironmentOptions( diff --git a/src/BuiltInTools/dotnet-watch/HotReload/BlazorWebAssemblyDeltaApplier.cs b/src/BuiltInTools/dotnet-watch/HotReload/BlazorWebAssemblyDeltaApplier.cs index 5fe9df3c77b0..1b9342ed8cf6 100644 --- a/src/BuiltInTools/dotnet-watch/HotReload/BlazorWebAssemblyDeltaApplier.cs +++ b/src/BuiltInTools/dotnet-watch/HotReload/BlazorWebAssemblyDeltaApplier.cs @@ -25,8 +25,10 @@ public override void CreateConnection(string namedPipeName, CancellationToken ca { } - public override Task WaitForProcessRunningAsync(CancellationToken cancellationToken) - => Task.CompletedTask; + public override async Task WaitForProcessRunningAsync(CancellationToken cancellationToken) + // Wait for the browser connection to be established as an indication that the process has started. + // Alternatively, we could inject agent into blazor-devserver.dll and establish a connection on the named pipe. + => await browserRefreshServer.WaitForClientConnectionAsync(cancellationToken); public override async Task> GetApplyUpdateCapabilitiesAsync(CancellationToken cancellationToken) { @@ -60,34 +62,45 @@ async Task> RetrieveAsync(CancellationToken cancellationT Reporter.Verbose("Connecting to the browser."); await browserRefreshServer.WaitForClientConnectionAsync(cancellationToken); - await browserRefreshServer.SendJsonSerlialized(default(BlazorRequestApplyUpdateCapabilities), cancellationToken); - // We'll query the browser and ask it send capabilities. - var response = await browserRefreshServer.ReceiveAsync(buffer, cancellationToken); - if (!response.HasValue || !response.Value.EndOfMessage || response.Value.MessageType != WebSocketMessageType.Text) + string capabilities; + if (browserRefreshServer.Options.TestFlags.HasFlag(TestFlags.MockBrowser)) { - throw new ApplicationException("Unable to connect to the browser refresh server."); - } - - var capabilities = Encoding.UTF8.GetString(buffer.AsSpan(0, response.Value.Count)); - var shouldFallBackToDefaultCapabilities = false; - - // error while fetching capabilities from WASM: - if (capabilities.StartsWith('!')) - { - Reporter.Verbose($"Exception while reading WASM runtime capabilities: {capabilities[1..]}"); - shouldFallBackToDefaultCapabilities = true; + // When testing return default capabilities without connecting to an actual browser. + capabilities = GetDefaultCapabilities(targetFrameworkVersion); } - else if (capabilities.Length == 0) + else { - Reporter.Verbose($"Unable to read WASM runtime capabilities"); - shouldFallBackToDefaultCapabilities = true; - } - - if (shouldFallBackToDefaultCapabilities) - { - capabilities = GetDefaultCapabilities(targetFrameworkVersion); - Reporter.Verbose($"Falling back to default WASM capabilities: '{capabilities}'"); + await browserRefreshServer.SendJsonSerlialized(default(BlazorRequestApplyUpdateCapabilities), cancellationToken); + + // We'll query the browser and ask it send capabilities. + var response = await browserRefreshServer.ReceiveAsync(buffer, cancellationToken); + if (!response.HasValue || !response.Value.EndOfMessage || response.Value.MessageType != WebSocketMessageType.Text) + { + throw new ApplicationException("Unable to connect to the browser refresh server."); + } + + capabilities = Encoding.UTF8.GetString(buffer.AsSpan(0, response.Value.Count)); + + var shouldFallBackToDefaultCapabilities = false; + + // error while fetching capabilities from WASM: + if (capabilities.StartsWith('!')) + { + Reporter.Verbose($"Exception while reading WASM runtime capabilities: {capabilities[1..]}"); + shouldFallBackToDefaultCapabilities = true; + } + else if (capabilities.Length == 0) + { + Reporter.Verbose($"Unable to read WASM runtime capabilities"); + shouldFallBackToDefaultCapabilities = true; + } + + if (shouldFallBackToDefaultCapabilities) + { + capabilities = GetDefaultCapabilities(targetFrameworkVersion); + Reporter.Verbose($"Falling back to default WASM capabilities: '{capabilities}'"); + } } // Capabilities are expressed a space-separated string. @@ -119,18 +132,18 @@ static string GetDefaultCapabilities(Version? targetFrameworkVersion) public override async Task Apply(ImmutableArray updates, CancellationToken cancellationToken) { - if (browserRefreshServer is null) - { - Reporter.Verbose("Unable to send deltas because the browser refresh server is unavailable."); - return ApplyStatus.Failed; - } - var applicableUpdates = await FilterApplicableUpdatesAsync(updates, cancellationToken); if (applicableUpdates.Count == 0) { return ApplyStatus.NoChangesApplied; } + if (browserRefreshServer.Options.TestFlags.HasFlag(TestFlags.MockBrowser)) + { + // When testing abstract away the browser and pretend all changes have been applied: + return ApplyStatus.AllChangesApplied; + } + await browserRefreshServer.SendJsonWithSecret(sharedSecret => new UpdatePayload { SharedSecret = sharedSecret, diff --git a/src/BuiltInTools/dotnet-watch/HotReload/BlazorWebAssemblyHostedDeltaApplier.cs b/src/BuiltInTools/dotnet-watch/HotReload/BlazorWebAssemblyHostedDeltaApplier.cs index f0ab36c6fd5a..630cf05a85c6 100644 --- a/src/BuiltInTools/dotnet-watch/HotReload/BlazorWebAssemblyHostedDeltaApplier.cs +++ b/src/BuiltInTools/dotnet-watch/HotReload/BlazorWebAssemblyHostedDeltaApplier.cs @@ -26,9 +26,9 @@ public override void CreateConnection(string namedPipeName, CancellationToken ca } public override Task WaitForProcessRunningAsync(CancellationToken cancellationToken) - => Task.WhenAll( - _wasmApplier.WaitForProcessRunningAsync(cancellationToken), - _hostApplier.WaitForProcessRunningAsync(cancellationToken)); + // We only need to wait for any of the app processes to start, so wait for the host. + // We do not need to wait for the browser connection to be established. + => _hostApplier.WaitForProcessRunningAsync(cancellationToken); public override async Task> GetApplyUpdateCapabilitiesAsync(CancellationToken cancellationToken) { diff --git a/src/BuiltInTools/dotnet-watch/HotReload/CompilationHandler.cs b/src/BuiltInTools/dotnet-watch/HotReload/CompilationHandler.cs index 8d0715cbd146..cdfc4cf3f9c2 100644 --- a/src/BuiltInTools/dotnet-watch/HotReload/CompilationHandler.cs +++ b/src/BuiltInTools/dotnet-watch/HotReload/CompilationHandler.cs @@ -326,7 +326,7 @@ await ForEachProjectAsync(projectsToUpdate, async (runningProject, cancellationT var applySucceded = await runningProject.DeltaApplier.Apply(updates.ProjectUpdates, processCommunicationCancellationSource.Token) != ApplyStatus.Failed; if (applySucceded) { - runningProject.Reporter.Output("Hot reload succeeded.", emoji: "🔥"); + runningProject.Reporter.Report(MessageDescriptor.HotReloadSucceeded); if (runningProject.BrowserRefreshServer is { } server) { runningProject.Reporter.Verbose("Refreshing browser."); diff --git a/src/BuiltInTools/dotnet-watch/HotReload/IncrementalMSBuildWorkspace.cs b/src/BuiltInTools/dotnet-watch/HotReload/IncrementalMSBuildWorkspace.cs index 26efaeb64788..17e4c6d27cd8 100644 --- a/src/BuiltInTools/dotnet-watch/HotReload/IncrementalMSBuildWorkspace.cs +++ b/src/BuiltInTools/dotnet-watch/HotReload/IncrementalMSBuildWorkspace.cs @@ -130,13 +130,17 @@ public async ValueTask UpdateFileContentAsync(IEnumerable changedFiles var sourceText = await GetSourceTextAsync(changedFile.FilePath, cancellationToken); - updatedSolution = textDocument is Document document - ? document.WithText(sourceText).Project.Solution - : updatedSolution.WithAdditionalDocumentText(textDocument.Id, sourceText, PreservationMode.PreserveValue); + updatedSolution = textDocument switch + { + Document document => document.WithText(sourceText).Project.Solution, + AdditionalDocument ad => updatedSolution.WithAdditionalDocumentText(textDocument.Id, sourceText, PreservationMode.PreserveValue), + AnalyzerConfigDocument acd => updatedSolution.WithAnalyzerConfigDocumentText(textDocument.Id, sourceText, PreservationMode.PreserveValue), + _ => throw new InvalidOperationException() + }; } } - _ = SetCurrentSolution(updatedSolution); + await ReportSolutionFilesAsync(SetCurrentSolution(updatedSolution), cancellationToken); } private static async ValueTask GetSourceTextAsync(string filePath, CancellationToken cancellationToken) @@ -186,12 +190,28 @@ public async Task ReportSolutionFilesAsync(Solution solution, CancellationToken _reporter.Verbose($"Solution: {solution.FilePath}"); foreach (var project in solution.Projects) { - _reporter.Verbose($" Project: {project.FilePath} {project.Id.Id}"); + _reporter.Verbose($" Project: {project.FilePath}"); + foreach (var document in project.Documents) { - var text = await document.GetTextAsync(cancellationToken); - _reporter.Verbose($" Document: {document.FilePath} {document.Id.Id} {BitConverter.ToString(text.GetChecksum().ToArray())}"); + await InspectDocumentAsync(document, "Document"); + } + + foreach (var document in project.AdditionalDocuments) + { + await InspectDocumentAsync(document, "Additional"); } + + foreach (var document in project.AnalyzerConfigDocuments) + { + await InspectDocumentAsync(document, "Config"); + } + } + + async ValueTask InspectDocumentAsync(TextDocument document, string kind) + { + var text = await document.GetTextAsync(cancellationToken); + _reporter.Verbose($" {kind}: {document.FilePath} [{Convert.ToBase64String(text.GetChecksum().ToArray())}]"); } } } diff --git a/src/BuiltInTools/dotnet-watch/Internal/IReporter.cs b/src/BuiltInTools/dotnet-watch/Internal/IReporter.cs index db63205197a7..68bd365e4502 100644 --- a/src/BuiltInTools/dotnet-watch/Internal/IReporter.cs +++ b/src/BuiltInTools/dotnet-watch/Internal/IReporter.cs @@ -47,6 +47,7 @@ public bool TryGetMessage(string? prefix, object?[] args, [NotNullWhen(true)] ou public static readonly MessageDescriptor LaunchedProcess = new("Launched '{0}' with arguments '{1}': process id {2}", "🚀", MessageSeverity.Verbose, s_id++); public static readonly MessageDescriptor KillingProcess = new("Killing process {0}", "⌚", MessageSeverity.Verbose, s_id++); public static readonly MessageDescriptor HotReloadChangeHandled = new("Hot reload change handled in {0}ms.", "🔥", MessageSeverity.Verbose, s_id++); + public static readonly MessageDescriptor HotReloadSucceeded = new("Hot reload succeeded.", "🔥", MessageSeverity.Output, s_id++); public static readonly MessageDescriptor BuildCompleted = new("Build completed.", "⌚", MessageSeverity.Verbose, s_id++); public static readonly MessageDescriptor UpdatesApplied = new("Updates applied: {0} out of {1}.", "🔥", MessageSeverity.Verbose, s_id++); public static readonly MessageDescriptor WaitingForFileChangeBeforeRestarting = new("Waiting for a file to change before restarting dotnet...", "⏳", MessageSeverity.Warning, s_id++); @@ -59,6 +60,8 @@ public bool TryGetMessage(string? prefix, object?[] args, [NotNullWhen(true)] ou public static readonly MessageDescriptor ApplyUpdate_Verbose = new("{0}", "⌚", MessageSeverity.Verbose, s_id++); public static readonly MessageDescriptor ApplyUpdate_ChangingEntryPoint = new("{0} Press \"Ctrl + R\" to restart.", "⚠", MessageSeverity.Warning, s_id++); public static readonly MessageDescriptor ApplyUpdate_FileContentDoesNotMatchBuiltSource = new("{0} Expected if a source file is updated that is linked to project whose build is not up-to-date.", "⌚", MessageSeverity.Verbose, s_id++); + public static readonly MessageDescriptor ConfiguredToLaunchBrowser = new("dotnet-watch is configured to launch a browser on ASP.NET Core application startup.", "⌚", MessageSeverity.Verbose, s_id++); + public static readonly MessageDescriptor ConfiguredToUseBrowserRefresh = new("Configuring the app to use browser-refresh middleware", "⌚", MessageSeverity.Verbose, s_id++); } internal interface IReporter diff --git a/test/Microsoft.NET.TestFramework/Microsoft.NET.TestFramework.csproj b/test/Microsoft.NET.TestFramework/Microsoft.NET.TestFramework.csproj index a47cc8bfa465..3d0f2fcf8637 100644 --- a/test/Microsoft.NET.TestFramework/Microsoft.NET.TestFramework.csproj +++ b/test/Microsoft.NET.TestFramework/Microsoft.NET.TestFramework.csproj @@ -29,6 +29,10 @@ <_Parameter1>SystemDataSqlClientPackageVersion <_Parameter2>$(SystemDataSqlClientPackageVersion) + + <_Parameter1>MicrosoftAspNetCoreAppRefPackageVersion + <_Parameter2>$(MicrosoftAspNetCoreAppRefPackageVersion) + diff --git a/test/Microsoft.NET.TestFramework/TestAsset.cs b/test/Microsoft.NET.TestFramework/TestAsset.cs index 84e2d7aa8ef6..b9f9f935da48 100644 --- a/test/Microsoft.NET.TestFramework/TestAsset.cs +++ b/test/Microsoft.NET.TestFramework/TestAsset.cs @@ -102,13 +102,9 @@ public TestAsset WithSource() UpdateProjProperty(property[0], property[1], property[2]); } - string[][] PackageVersionVariables = { - new string[] { "NewtonsoftJsonPackageVersion", ToolsetInfo.GetNewtonsoftJsonPackageVersion() }, - new string[] { "SystemDataSqlClientPackageVersion", ToolsetInfo.GetSystemDataSqlClientPackageVersion() }}; - - foreach (string[] PackageVersionVariable in PackageVersionVariables) + foreach (var (propertyName, version) in ToolsetInfo.GetPackageVersionProperties()) { - this.ReplacePackageVersionVariable(PackageVersionVariable[0], PackageVersionVariable[1]); + this.ReplacePackageVersionVariable(propertyName, version); } return this; diff --git a/test/Microsoft.NET.TestFramework/ToolsetInfo.cs b/test/Microsoft.NET.TestFramework/ToolsetInfo.cs index 0b3e10c0ae20..8b02baeee505 100644 --- a/test/Microsoft.NET.TestFramework/ToolsetInfo.cs +++ b/test/Microsoft.NET.TestFramework/ToolsetInfo.cs @@ -377,32 +377,6 @@ public static bool TryResolveCommand(string command, out string fullExePath) return true; } - private static string FindFileInTree(string relativePath, string startPath, bool throwIfNotFound = true) - { - string currentPath = startPath; - while (true) - { - string path = Path.Combine(currentPath, relativePath); - if (File.Exists(path)) - { - return path; - } - var parent = Directory.GetParent(currentPath); - if (parent == null) - { - if (throwIfNotFound) - { - throw new FileNotFoundException($"Could not find file '{relativePath}' in '{startPath}' or any of its ancestors"); - } - else - { - return null; - } - } - currentPath = parent.FullName; - } - } - private bool UsingFullMSBuildWithoutExtensionsTargets() { if (!ShouldUseFullFrameworkMSBuild) @@ -414,22 +388,20 @@ private bool UsingFullMSBuildWithoutExtensionsTargets() return !File.Exists(extensionsImportAfterPath); } - private static string GetPackageVersion(string key) - { - Assembly assembly = Assembly.GetExecutingAssembly(); - return assembly.GetCustomAttributes(true) - .OfType() - .FirstOrDefault(a => a.Key == key)?.Value; - } + internal static IEnumerable<(string versionPropertyName, string version)> GetPackageVersionProperties() + => typeof(ToolsetInfo).Assembly + .GetCustomAttributes() + .Where(a => a.Key.EndsWith("PackageVersion")) + .Select(a => (a.Key, a.Value)); - private static readonly Lazy _NewtonsoftJsonPackageVersion = new Lazy(() => GetPackageVersion( "NewtonsoftJsonPackageVersion")); + private static readonly Lazy _NewtonsoftJsonPackageVersion = new Lazy(() => GetPackageVersionProperties().Single(p => p.versionPropertyName == "NewtonsoftJsonPackageVersion").version); public static string GetNewtonsoftJsonPackageVersion() { return _NewtonsoftJsonPackageVersion.Value; } - private static readonly Lazy _SystemDataSqlClientPackageVersion = new(() => GetPackageVersion("SystemDataSqlClientPackageVersion")); + private static readonly Lazy _SystemDataSqlClientPackageVersion = new(() => GetPackageVersionProperties().Single(p => p.versionPropertyName == "SystemDataSqlClientPackageVersion").version); public static string GetSystemDataSqlClientPackageVersion() { diff --git a/test/TestAssets/TestProjects/WatchBlazorWasm/App.razor b/test/TestAssets/TestProjects/WatchBlazorWasm/App.razor new file mode 100644 index 000000000000..13f3043f0c49 --- /dev/null +++ b/test/TestAssets/TestProjects/WatchBlazorWasm/App.razor @@ -0,0 +1,8 @@ + + + + + +

Sorry, there's nothing at this address.

+
+
diff --git a/test/TestAssets/TestProjects/WatchBlazorWasm/Pages/Index.razor b/test/TestAssets/TestProjects/WatchBlazorWasm/Pages/Index.razor new file mode 100644 index 000000000000..16dac3192520 --- /dev/null +++ b/test/TestAssets/TestProjects/WatchBlazorWasm/Pages/Index.razor @@ -0,0 +1,5 @@ +@page "/" + +

Hello, world!

+ +Welcome to your new app. diff --git a/test/TestAssets/TestProjects/WatchBlazorWasm/Program.cs b/test/TestAssets/TestProjects/WatchBlazorWasm/Program.cs new file mode 100644 index 000000000000..3ebadb8b76c0 --- /dev/null +++ b/test/TestAssets/TestProjects/WatchBlazorWasm/Program.cs @@ -0,0 +1,11 @@ +using System; + +namespace standalone +{ + public class Program + { + public static void Main(string[] args) + { + } + } +} diff --git a/test/TestAssets/TestProjects/WatchBlazorWasm/Properties/launchSettings.json b/test/TestAssets/TestProjects/WatchBlazorWasm/Properties/launchSettings.json new file mode 100644 index 000000000000..dc7b2f31b4b3 --- /dev/null +++ b/test/TestAssets/TestProjects/WatchBlazorWasm/Properties/launchSettings.json @@ -0,0 +1,13 @@ +{ + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": "true", + "launchBrowser": true, + "applicationUrl": "http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/test/TestAssets/TestProjects/WatchBlazorWasm/_Imports.razor b/test/TestAssets/TestProjects/WatchBlazorWasm/_Imports.razor new file mode 100644 index 000000000000..129b440e8600 --- /dev/null +++ b/test/TestAssets/TestProjects/WatchBlazorWasm/_Imports.razor @@ -0,0 +1,2 @@ +@using Microsoft.AspNetCore.Components.Routing +@using standalone diff --git a/test/TestAssets/TestProjects/WatchBlazorWasm/blazorwasm.csproj b/test/TestAssets/TestProjects/WatchBlazorWasm/blazorwasm.csproj new file mode 100644 index 000000000000..7ad07e0ed0c7 --- /dev/null +++ b/test/TestAssets/TestProjects/WatchBlazorWasm/blazorwasm.csproj @@ -0,0 +1,23 @@ + + + + $(CurrentTargetFramework) + + + + + + + + + + true + + + + + <_BlazorBrotliCompressionLevel>NoCompression + + + diff --git a/test/TestAssets/TestProjects/WatchBlazorWasm/icudt_custom.dat b/test/TestAssets/TestProjects/WatchBlazorWasm/icudt_custom.dat new file mode 100644 index 0000000000000000000000000000000000000000..703d9704375e0835cf84161fce435f4b2be6dc92 GIT binary patch literal 538240 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ĄhEmzjH;# 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 + + + + + + standalone + + + + + + + Loading... + + + + + + diff --git a/test/TestAssets/TestProjects/WatchBrowserLaunchApp/WatchBrowserLaunchApp.csproj b/test/TestAssets/TestProjects/WatchBrowserLaunchApp/WatchBrowserLaunchApp.csproj index 5fd57ba4e91c..f6339cf83e1f 100644 --- a/test/TestAssets/TestProjects/WatchBrowserLaunchApp/WatchBrowserLaunchApp.csproj +++ b/test/TestAssets/TestProjects/WatchBrowserLaunchApp/WatchBrowserLaunchApp.csproj @@ -1,8 +1,7 @@ - + $(CurrentTargetFramework) - Exe diff --git a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs index 65c654ebec17..8d0a41b9024f 100644 --- a/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs +++ b/test/dotnet-watch.Tests/HotReload/ApplyDeltaTests.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using Microsoft.Extensions.Tools.Internal; + namespace Microsoft.DotNet.Watcher.Tests { public class ApplyDeltaTests(ITestOutputHelper logger) : DotNetWatchTestBase(logger) @@ -95,5 +97,28 @@ public static void Print() await App.AssertOutputLineStartsWith("Updated types: Printer"); } + + [Fact] + public async Task BlazorWasm() + { + var testAsset = TestAssets.CopyTestAsset("WatchBlazorWasm") + .WithSource(); + + App.Start(testAsset, [], testFlags: TestFlags.MockBrowser); + + await App.AssertOutputLineStartsWith(MessageDescriptor.ConfiguredToUseBrowserRefresh); + await App.AssertOutputLineStartsWith(MessageDescriptor.ConfiguredToLaunchBrowser); + await App.AssertOutputLineStartsWith("dotnet watch ⌚ Launching browser: http://localhost:5000/"); + await App.AssertWaitingForChanges(); + + // TODO: enable once https://github.com/dotnet/razor/issues/10818 is fixed + //var newSource = """ + // @page "/" + //

Updated

+ // """; + + //UpdateSourceFile(Path.Combine(testAsset.Path, "Pages", "Index.razor"), newSource); + //await App.AssertOutputLineStartsWith(MessageDescriptor.HotReloadSucceeded); + } } } diff --git a/test/dotnet-watch.Tests/Watch/BrowserLaunchTests.cs b/test/dotnet-watch.Tests/Watch/BrowserLaunchTests.cs index d7cd8d8457e4..087a1ce74c49 100644 --- a/test/dotnet-watch.Tests/Watch/BrowserLaunchTests.cs +++ b/test/dotnet-watch.Tests/Watch/BrowserLaunchTests.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using Microsoft.Extensions.Tools.Internal; + namespace Microsoft.DotNet.Watcher.Tests { public class BrowserLaunchTests : DotNetWatchTestBase @@ -18,7 +20,7 @@ public async Task LaunchesBrowserOnStart() var testAsset = TestAssets.CopyTestAsset(AppName) .WithSource(); - App.Start(testAsset, [], testFlags: TestFlags.BrowserRequired); + App.Start(testAsset, [], testFlags: TestFlags.MockBrowser); // Verify we launched the browser. await App.AssertOutputLineStartsWith("dotnet watch ⌚ Launching browser: https://localhost:5001/"); @@ -32,7 +34,9 @@ public async Task UsesBrowserSpecifiedInEnvironment() App.EnvironmentVariables.Add("DOTNET_WATCH_BROWSER_PATH", "mycustombrowser.bat"); - App.Start(testAsset, [], testFlags: TestFlags.BrowserRequired); + App.Start(testAsset, [], testFlags: TestFlags.MockBrowser); + await App.AssertOutputLineStartsWith(MessageDescriptor.ConfiguredToUseBrowserRefresh); + await App.AssertOutputLineStartsWith(MessageDescriptor.ConfiguredToLaunchBrowser); // Verify we launched the browser. await App.AssertOutputLineStartsWith("dotnet watch ⌚ Launching browser: mycustombrowser.bat https://localhost:5001/"); diff --git a/test/dotnet-watch.Tests/Watch/DotNetWatcherTests.cs b/test/dotnet-watch.Tests/Watch/DotNetWatcherTests.cs index 8bccb06dde42..3635cb163001 100644 --- a/test/dotnet-watch.Tests/Watch/DotNetWatcherTests.cs +++ b/test/dotnet-watch.Tests/Watch/DotNetWatcherTests.cs @@ -32,7 +32,7 @@ public async Task RunsWithDotnetLaunchProfileEnvVariableWhenNotExplicitlySpecifi { Assert.True(string.IsNullOrEmpty(Environment.GetEnvironmentVariable("DOTNET_LAUNCH_PROFILE")), "DOTNET_LAUNCH_PROFILE cannot be set already when this test is running"); - var testAsset = TestAssets.CopyTestAsset(AppName) + var testAsset = TestAssets.CopyTestAsset(AppName, identifier: hotReload.ToString()) .WithSource(); if (!hotReload) @@ -50,7 +50,7 @@ public async Task RunsWithDotnetLaunchProfileEnvVariableWhenExplicitlySpecified( { Assert.True(string.IsNullOrEmpty(Environment.GetEnvironmentVariable("DOTNET_LAUNCH_PROFILE")), "DOTNET_LAUNCH_PROFILE cannot be set already when this test is running"); - var testAsset = TestAssets.CopyTestAsset(AppName) + var testAsset = TestAssets.CopyTestAsset(AppName, identifier: hotReload.ToString()) .WithSource(); if (!hotReload) @@ -70,7 +70,7 @@ public async Task RunsWithDotnetLaunchProfileEnvVariableWhenExplicitlySpecifiedB { Assert.True(string.IsNullOrEmpty(Environment.GetEnvironmentVariable("DOTNET_LAUNCH_PROFILE")), "DOTNET_LAUNCH_PROFILE cannot be set already when this test is running"); - var testAsset = TestAssets.CopyTestAsset(AppName) + var testAsset = TestAssets.CopyTestAsset(AppName, identifier: hotReload.ToString()) .WithSource(); if (!hotReload) diff --git a/test/dotnet-watch.Tests/Watch/Utilities/WatchableApp.cs b/test/dotnet-watch.Tests/Watch/Utilities/WatchableApp.cs index 7668c9d8065b..e716d587d4cf 100644 --- a/test/dotnet-watch.Tests/Watch/Utilities/WatchableApp.cs +++ b/test/dotnet-watch.Tests/Watch/Utilities/WatchableApp.cs @@ -18,9 +18,6 @@ internal sealed class WatchableApp : IDisposable private const string WatchErrorOutputEmoji = "❌"; private const string WatchFileChanged = "dotnet watch ⌚ File changed:"; - private static readonly string s_waitingForChanges = GetLinePrefix(MessageDescriptor.WaitingForChanges); - private static readonly string s_waitingForFileChangeBeforeRestarting = GetLinePrefix(MessageDescriptor.WaitingForFileChangeBeforeRestarting); - public readonly ITestOutputHelper Logger; private bool _prepared; @@ -37,9 +34,12 @@ public WatchableApp(ITestOutputHelper logger) public bool UsePollingWatcher { get; set; } - private static string GetLinePrefix(MessageDescriptor descriptor) + public static string GetLinePrefix(MessageDescriptor descriptor) => $"dotnet watch {descriptor.Emoji} {descriptor.Format}"; + public Task AssertOutputLineStartsWith(MessageDescriptor descriptor) + => AssertOutputLineStartsWith(GetLinePrefix(descriptor)); + /// /// Asserts that the watched process outputs a line starting with and returns the remainder of that line. /// @@ -76,12 +76,12 @@ public Task AssertStarted() /// Wait till file watcher starts watching for file changes. ///
public Task AssertWaitingForChanges() - => AssertOutputLineStartsWith(s_waitingForChanges); + => AssertOutputLineStartsWith(MessageDescriptor.WaitingForChanges); public async Task AssertWaitingForFileChangeBeforeRestarting() { // wait for user facing message: - await AssertOutputLineStartsWith(s_waitingForFileChangeBeforeRestarting); + await AssertOutputLineStartsWith(MessageDescriptor.WaitingForFileChangeBeforeRestarting); // wait for the file watcher to start watching for changes: await AssertWaitingForChanges(); From 95add619642fdab7c0d713fe591b10b2c93d2b59 Mon Sep 17 00:00:00 2001 From: Manodasan Wignarajah Date: Mon, 9 Sep 2024 13:21:02 -0700 Subject: [PATCH 206/209] Update Windows SDK projection --- eng/ManualVersions.props | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/eng/ManualVersions.props b/eng/ManualVersions.props index e63e89764e1c..2b773d3a8285 100644 --- a/eng/ManualVersions.props +++ b/eng/ManualVersions.props @@ -9,20 +9,20 @@ Basically: In this file, choose the highest version when resolving merge conflicts. --> - 10.0.17763.39 - 10.0.18362.39 - 10.0.19041.39 - 10.0.20348.39 - 10.0.22000.39 - 10.0.22621.39 - 10.0.26100.39 - 10.0.17763.38 - 10.0.18362.38 - 10.0.19041.38 - 10.0.20348.38 - 10.0.22000.38 - 10.0.22621.38 - 10.0.26100.38 + 10.0.17763.45 + 10.0.18362.45 + 10.0.19041.45 + 10.0.20348.45 + 10.0.22000.45 + 10.0.22621.45 + 10.0.26100.45 + 10.0.17763.43 + 10.0.18362.43 + 10.0.19041.43 + 10.0.20348.43 + 10.0.22000.43 + 10.0.22621.43 + 10.0.26100.43 From b8e84b16546b108ca575e9714fcbd98831d94131 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 08:51:27 +0200 Subject: [PATCH 207/209] [release/9.0.1xx] [StaticWebAssets] Improve Up to date check logic (#43156) Co-authored-by: Javier Calvarro Nelson Co-authored-by: campersau --- ...oft.NET.Sdk.StaticWebAssets.Design.targets | 68 ++++++++ ...NET.Sdk.StaticWebAssets.References.targets | 12 ++ .../Microsoft.NET.Sdk.StaticWebAssets.targets | 48 +++++- .../Data/StaticWebAssetEndpointsManifest.cs | 2 + ...GenerateStaticWebAssetEndpointsManifest.cs | 1 + .../StaticWebAssetsDesignTimeTest.cs | 161 ++++++++++++++++++ 6 files changed, 288 insertions(+), 4 deletions(-) create mode 100644 src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.Design.targets create mode 100644 test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsDesignTimeTest.cs diff --git a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.Design.targets b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.Design.targets new file mode 100644 index 000000000000..a08b453e177d --- /dev/null +++ b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.Design.targets @@ -0,0 +1,68 @@ + + + + $(CollectUpToDateCheckInputDesignTimeDependsOn); + ResolveStaticWebAssetsConfiguration; + ResolveProjectStaticWebAssets; + CollectStaticWebAssetInputsDesignTime; + + + $(CollectUpToDateCheckOutputDesignTimeDependsOn); + ResolveStaticWebAssetsConfiguration; + CollectStaticWebAssetOutputsDesignTime; + + + + + + + + + + + + + + + <_UpToDateCheckStaticWebAssetResolved Include="@(StaticWebAsset)" Condition="'%(SourceType)' == 'Discovered'" /> + + + + <_UpToDateCheckStaticWebAssetResolvedCandidate Include="@(_UpToDateCheckStaticWebAssetResolved->'%(OriginalItemSpec)')" /> + <_StaticWebAssetUpToDateCheckInput Include="@(_UpToDateCheckStaticWebAssetResolvedCandidate->Distinct()->'%(FullPath)')" /> + + + + <_ExistingStaticWebAssetUpToDateCheckInput Include="%(_StaticWebAssetUpToDateCheckInput.FullPath)" Condition="Exists('%(_StaticWebAssetUpToDateCheckInput.FullPath)')" /> + <_NonExistingStaticWebAssetUpToDateCheckInput Include="%(_StaticWebAssetUpToDateCheckInput.FullPath)" Condition="!Exists('%(_StaticWebAssetUpToDateCheckInput.FullPath)')" /> + + + + + + + + + + + + + + + + + + + + + diff --git a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.References.targets b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.References.targets index b7a893e50656..b4fbaaf70cc7 100644 --- a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.References.targets +++ b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.References.targets @@ -46,6 +46,16 @@ Copyright (c) .NET Foundation. All rights reserved. + + <_ReferenceManifestPath Include="@(_ReferencedProjectsConfiguration->'%(BuildManifestPath)')" Condition="'%(_ReferencedProjectsConfiguration.BuildManifestPath)' != ''" /> + + + + @@ -85,6 +95,8 @@ Copyright (c) .NET Foundation. All rights reserved. $(StaticWebAssetsGetPublishAssetsTargets) $(StaticWebAssetsAdditionalPublishProperties) $(StaticWebAssetsAdditionalPublishPropertiesToRemove) + + $([System.IO.Path]::GetFullPath('$(StaticWebAssetBuildManifestPath)')) diff --git a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.targets b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.targets index 9ea12ab053d9..3b10c6badc3f 100644 --- a/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.targets +++ b/src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.targets @@ -101,7 +101,7 @@ Copyright (c) .NET Foundation. All rights reserved. TaskName="Microsoft.AspNetCore.StaticWebAssets.Tasks.FilterStaticWebAssetEndpoints" AssemblyFile="$(StaticWebAssetsSdkBuildTasksAssembly)" Condition="'$(StaticWebAssetsSdkBuildTasksAssembly)' != ''" /> - + StaticWebAssetsPrepareForRun;$(PrepareForRunDependsOn) - $(StaticWebAssetsPrepareForRunDependsOn);ResolveBuildStaticWebAssets;GenerateStaticWebAssetsManifest;CopyStaticWebAssetsToOutputDirectory + $(StaticWebAssetsPrepareForRunDependsOn);ResolveBuildStaticWebAssets;GenerateStaticWebAssetsManifest;CopyStaticWebAssetsToOutputDirectory; + $(StaticWebAssetsPrepareForRunDependsOn);WriteStaticWebAssetsUpToDateCheck; ResolveCoreStaticWebAssets;$(GenerateComputedBuildStaticWebAssetsDependsOn) @@ -457,6 +458,11 @@ Copyright (c) .NET Foundation. All rights reserved. <_StaticWebAssetsGeneratedBuildPropsFileImportPath>..\build\$(PackageId).props <_StaticWebAssetsGeneratedBuildMultiTargetingPropsFileImportPath>..\buildMultiTargeting\$(PackageId).props + + $(_StaticWebAssetsManifestBase)staticwebassets.upToDateCheck.txt + $(_StaticWebAssetsManifestBase)staticwebassets.references.upToDateCheck.txt + $(_StaticWebAssetsManifestBase)staticwebassets.removed.txt + + + + + <_UpToDateCheckStaticWebAssetCandidate Include="@(StaticWebAsset)" Condition="'%(SourceType)' == 'Discovered'" /> + + + + + + + + <_UpToDateCheckStaticWebAssetResolvedCandidate Include="@(_UpToDateCheckStaticWebAssetResolved->'%(OriginalItemSpec)')" /> + <_UpToDateCheckStaticWebAsset Include="@(_UpToDateCheckStaticWebAssetResolvedCandidate->Distinct())" /> + + + + + + + + + - @@ -656,7 +694,7 @@ Copyright (c) .NET Foundation. All rights reserved. - + @@ -672,6 +710,8 @@ Copyright (c) .NET Foundation. All rights reserved. + + diff --git a/src/StaticWebAssetsSdk/Tasks/Data/StaticWebAssetEndpointsManifest.cs b/src/StaticWebAssetsSdk/Tasks/Data/StaticWebAssetEndpointsManifest.cs index ebeef52a70cc..b10176d13a43 100644 --- a/src/StaticWebAssetsSdk/Tasks/Data/StaticWebAssetEndpointsManifest.cs +++ b/src/StaticWebAssetsSdk/Tasks/Data/StaticWebAssetEndpointsManifest.cs @@ -7,5 +7,7 @@ public class StaticWebAssetEndpointsManifest() { public int Version { get; set; } + public string ManifestType { get; set; } + public StaticWebAssetEndpoint[] Endpoints { get; set; } } diff --git a/src/StaticWebAssetsSdk/Tasks/GenerateStaticWebAssetEndpointsManifest.cs b/src/StaticWebAssetsSdk/Tasks/GenerateStaticWebAssetEndpointsManifest.cs index 7fb33248e37f..9dce83a50997 100644 --- a/src/StaticWebAssetsSdk/Tasks/GenerateStaticWebAssetEndpointsManifest.cs +++ b/src/StaticWebAssetsSdk/Tasks/GenerateStaticWebAssetEndpointsManifest.cs @@ -56,6 +56,7 @@ public override bool Execute() var manifest = new StaticWebAssetEndpointsManifest() { Version = 1, + ManifestType = ManifestType, Endpoints = [.. filteredEndpoints] }; diff --git a/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsDesignTimeTest.cs b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsDesignTimeTest.cs new file mode 100644 index 000000000000..a6ec0a905bf1 --- /dev/null +++ b/test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssetsDesignTimeTest.cs @@ -0,0 +1,161 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.NET.Sdk.Razor.Tests; + +public class StaticWebAssetsDesignTimeTest(ITestOutputHelper log) : AspNetSdkBaselineTest(log) +{ +#if DEBUG + public const string Configuration = "Debug"; +#else + public const string Configuration = "Release"; +#endif + + [Fact] + public void CollectUpToDateCheckInputOutputsDesignTime_ReportsAddedFiles() + { + // Arrange + var testAsset = "RazorAppWithP2PReference"; + ProjectDirectory = AddIntrospection(CreateAspNetSdkTestAsset(testAsset)); + + var build = CreateBuildCommand(ProjectDirectory, "ClassLibrary"); + + build.Execute("/p:DesignTimeBuild=true", "/p:BuildingInsideVisualStudio=true", "/bl:build.binlog").Should().Pass(); + + File.WriteAllText(Path.Combine(ProjectDirectory.Path, "ClassLibrary", "wwwroot", "js", "file.js"), "New File"); + + var msbuild = CreateMSBuildCommand( + ProjectDirectory, + "ClassLibrary", + "ResolveStaticWebAssetsConfiguration;ResolveProjectStaticWebAssets;CollectStaticWebAssetInputsDesignTime;CollectStaticWebAssetOutputsDesignTime"); + + msbuild.ExecuteWithoutRestore("/p:DesignTimeBuild=true", "/p:BuildingInsideVisualStudio=true", "/bl:design.binlog").Should().Pass(); + + // Check the contents of the input and output files + var inputFilePath = Path.Combine(build.GetIntermediateDirectory().FullName, "StaticWebAssetsUTDCInput.txt"); + new FileInfo(inputFilePath).Should().Exist(); + var inputFiles = File.ReadAllLines(inputFilePath); + inputFiles.Should().HaveCount(3); + inputFiles.Should().Contain(Path.Combine(ProjectDirectory.Path, "ClassLibrary", "wwwroot", "js", "file.js")); + inputFiles.Should().Contain(Path.Combine(ProjectDirectory.Path, "ClassLibrary", "wwwroot", "js", "project-transitive-dep.js")); + inputFiles.Should().Contain(Path.Combine(ProjectDirectory.Path, "ClassLibrary", "wwwroot", "js", "project-transitive-dep.v4.js")); + + var outputFilePath = Path.Combine(build.GetIntermediateDirectory().FullName, "StaticWebAssetsUTDCOutput.txt"); + new FileInfo(outputFilePath).Should().Exist(); + var outputFiles = File.ReadAllLines(outputFilePath); + outputFiles.Should().ContainSingle(); + Path.GetFileName(outputFiles[0]).Should().Be("staticwebassets.build.json"); + } + + [Fact] + public void CollectUpToDateCheckInputOutputsDesignTime_ReportsRemovedFiles_Once() + { + // Arrange + var testAsset = "RazorAppWithP2PReference"; + ProjectDirectory = AddIntrospection(CreateAspNetSdkTestAsset(testAsset)); + + var build = CreateBuildCommand(ProjectDirectory, "ClassLibrary"); + + build.Execute("/p:DesignTimeBuild=true", "/p:BuildingInsideVisualStudio=true", "/bl:build.binlog").Should().Pass(); + + File.Delete(Path.Combine(ProjectDirectory.Path, "ClassLibrary", "wwwroot", "js", "project-transitive-dep.js")); + + var msbuild = CreateMSBuildCommand( + ProjectDirectory, + "ClassLibrary", + "ResolveStaticWebAssetsConfiguration;ResolveProjectStaticWebAssets;CollectStaticWebAssetInputsDesignTime;CollectStaticWebAssetOutputsDesignTime"); + + msbuild.ExecuteWithoutRestore("/p:DesignTimeBuild=true", "/p:BuildingInsideVisualStudio=true", "/bl:design.binlog").Should().Pass(); + + // Check the contents of the input and output files + var inputFilePath = Path.Combine(build.GetIntermediateDirectory().FullName, "StaticWebAssetsUTDCInput.txt"); + new FileInfo(inputFilePath).Should().Exist(); + var inputFiles = File.ReadAllLines(inputFilePath); + inputFiles.Should().HaveCount(2); + inputFiles.Should().Contain(Path.Combine(build.GetIntermediateDirectory().FullName, "staticwebassets.removed.txt")); + inputFiles.Should().Contain(Path.Combine(ProjectDirectory.Path, "ClassLibrary", "wwwroot", "js", "project-transitive-dep.v4.js")); + + var outputFilePath = Path.Combine(build.GetIntermediateDirectory().FullName, "StaticWebAssetsUTDCOutput.txt"); + new FileInfo(outputFilePath).Should().Exist(); + var outputFiles = File.ReadAllLines(outputFilePath); + outputFiles.Should().ContainSingle(); + Path.GetFileName(outputFiles[0]).Should().Be("staticwebassets.build.json"); + } + + [Fact] + public void CollectUpToDateCheckInputOutputsDesignTime_IncludesReferencedProjectsManifests() + { + // Arrange + var testAsset = "RazorAppWithP2PReference"; + ProjectDirectory = AddIntrospection(CreateAspNetSdkTestAsset(testAsset)); + + var build = CreateBuildCommand(ProjectDirectory, "AppWithP2PReference"); + + build.Execute("/bl:build.binlog").Should().Pass(); + build.Execute("/p:DesignTimeBuild=true", "/p:BuildingInsideVisualStudio=true", "/bl:build.binlog").Should().Pass(); + + var msbuild = CreateMSBuildCommand( + ProjectDirectory, + "AppWithP2PReference", + "ResolveStaticWebAssetsConfiguration;ResolveProjectStaticWebAssets;CollectStaticWebAssetInputsDesignTime;CollectStaticWebAssetOutputsDesignTime"); + + msbuild.ExecuteWithoutRestore("/p:DesignTimeBuild=true", "/p:BuildingInsideVisualStudio=true", "/bl:design.binlog").Should().Pass(); + + // Check the contents of the input and output files + var inputFilePath = Path.Combine(build.GetIntermediateDirectory().FullName, "StaticWebAssetsUTDCInput.txt"); + new FileInfo(inputFilePath).Should().Exist(); + var inputFiles = File.ReadAllLines(inputFilePath); + inputFiles.Should().HaveCount(1); + inputFiles.Should().Contain(Path.Combine(ProjectDirectory.Path, "ClassLibrary", "obj", "Debug", DefaultTfm, "staticwebassets.build.json")); + + var outputFilePath = Path.Combine(build.GetIntermediateDirectory().FullName, "StaticWebAssetsUTDCOutput.txt"); + new FileInfo(outputFilePath).Should().Exist(); + var outputFiles = File.ReadAllLines(outputFilePath); + outputFiles.Should().ContainSingle(); + Path.GetFileName(outputFiles[0]).Should().Be("staticwebassets.build.json"); + } + + private MSBuildCommand CreateMSBuildCommand(TestAsset testAsset, string relativeProjectPath, string targets) + { + return (MSBuildCommand)new MSBuildCommand(testAsset.Log, targets, testAsset.TestRoot, relativeProjectPath) + .WithWorkingDirectory(testAsset.TestRoot); + } + + private TestAsset AddIntrospection(TestAsset testAsset) + { + return testAsset + .WithProjectChanges((name, project) => + { + project.Document.Root.LastNode.AddAfterSelf( + XElement.Parse(""" + + + <_StaticWebAssetsUTDCInput Include="@(UpToDateCheckInput)" Condition="'%(UpToDateCheckInput.Set)' == 'StaticWebAssets'" /> + <_StaticWebAssetsUTDCOutput Include="@(UpToDateCheckOutput)" Condition="'%(UpToDateCheckOutput.Set)' == 'StaticWebAssets'" /> + + + + + + + """ + )); + }); + } +} From 2809e587ee27199930bf70e8160fe1f921701107 Mon Sep 17 00:00:00 2001 From: Matt Thalman Date: Tue, 10 Sep 2024 16:01:38 -0500 Subject: [PATCH 208/209] Remove exclusion for sRGB profile --- src/VirtualMonoRepo/source-mappings.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/VirtualMonoRepo/source-mappings.json b/src/VirtualMonoRepo/source-mappings.json index 6fc3b157e9e4..2b9acce26e6d 100644 --- a/src/VirtualMonoRepo/source-mappings.json +++ b/src/VirtualMonoRepo/source-mappings.json @@ -199,11 +199,7 @@ }, { "name": "wpf", - "defaultRemote": "https://github.com/dotnet/wpf", - "exclude": [ - // Non-OSS license - https://github.com/dotnet/source-build/issues/4590 - "src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Resources/ColorProfiles/sRGB.icm" - ] + "defaultRemote": "https://github.com/dotnet/wpf" }, { "name": "windowsdesktop", From 85c613cf3b384ec750de46ab85af7a4a74a14196 Mon Sep 17 00:00:00 2001 From: Jason Zhai Date: Wed, 11 Sep 2024 01:02:28 -0700 Subject: [PATCH 209/209] fix: remove duplicate trans-unit and update note attribute --- src/Tasks/Common/Resources/Strings.resx | 2 +- src/Tasks/Common/Resources/xlf/Strings.cs.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.de.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.es.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.fr.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.it.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.ja.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.ko.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.pl.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.ru.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.tr.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf | 7 +------ src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf | 7 +------ 14 files changed, 14 insertions(+), 79 deletions(-) diff --git a/src/Tasks/Common/Resources/Strings.resx b/src/Tasks/Common/Resources/Strings.resx index 1ddef1cce527..4fbcd384a4bd 100644 --- a/src/Tasks/Common/Resources/Strings.resx +++ b/src/Tasks/Common/Resources/Strings.resx @@ -974,7 +974,7 @@ You may need to build the project on another operating system or architecture, o NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} diff --git a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf index 31a18c620cd3..4289d65614f2 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.de.xlf b/src/Tasks/Common/Resources/xlf/Strings.de.xlf index 695f86f40930..f7c8e53fb3e0 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.de.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.de.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.es.xlf b/src/Tasks/Common/Resources/xlf/Strings.es.xlf index 52f85e54d457..476a80d3d0bd 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.es.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.es.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf index 352fa92e30d1..2f59d89f16c2 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.it.xlf b/src/Tasks/Common/Resources/xlf/Strings.it.xlf index 1b28bfae7d3c..b70a7185f614 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.it.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.it.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf index 58f6bc8f97ce..1cf193990196 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf index b29861143501..cb0e6894520c 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf index 7b2402a21f32..b4496cd587c2 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf index cb69b001ae4f..fc1bc959e75d 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf index 566a83367809..5a3a7ea0e2e8 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf index 9c00b743a51e..f4e74ce00a5e 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf index b669915af340..650cae8cb98f 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection. diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf index 2ec5774988f6..cbe284d21660 100644 --- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf @@ -596,12 +596,7 @@ The following are names of parameters or literal values and should not be transl NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} - - - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - NETSDK1221: NuGetPackageRoot property is empty so package Microsoft.Net.Sdk.Compilers.Toolset cannot be used but it is recommended because your MSBuild and SDK versions are mismatched. Ensure you are building with '/restore /t:Build' and not '/t:Restore;Build'. - {StrBegin="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} + {StrBegins="NETSDK1221: "}{Locked="NuGetPackageRoot"}{Locked="Microsoft.Net.Sdk.Compilers.Toolset"}{Locked="'/restore /t:Build'"}{Locked="'/t:Restore;Build'"} NETSDK1061: The project was restored using {0} version {1}, but with current settings, version {2} would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection.