diff --git a/src/Aspire.AppHost.Sdk/SDK/Sdk.in.targets b/src/Aspire.AppHost.Sdk/SDK/Sdk.in.targets index 391eb0b3135..683442a2b7c 100644 --- a/src/Aspire.AppHost.Sdk/SDK/Sdk.in.targets +++ b/src/Aspire.AppHost.Sdk/SDK/Sdk.in.targets @@ -36,11 +36,11 @@ - + - + diff --git a/src/Aspire.Hosting.Analyzers/AppHostAnalyzer.Diagnostics.cs b/src/Aspire.Hosting.Analyzers/AppHostAnalyzer.Diagnostics.cs index 84c1dd24109..c45a1a21455 100644 --- a/src/Aspire.Hosting.Analyzers/AppHostAnalyzer.Diagnostics.cs +++ b/src/Aspire.Hosting.Analyzers/AppHostAnalyzer.Diagnostics.cs @@ -18,7 +18,7 @@ internal static class Diagnostics category: "Design", DiagnosticSeverity.Error, isEnabledByDefault: true, - helpLinkUri: $"https://aka.ms/dotnet/aspire/diagnostics#{ModelNameMustBeValidId}"); + helpLinkUri: $"https://aka.ms/aspire/diagnostics/{ModelNameMustBeValidId}"); public static readonly ImmutableArray SupportedDiagnostics = ImmutableArray.Create( s_modelNameMustBeValid diff --git a/src/Aspire.Hosting.AppHost/build/Aspire.Hosting.AppHost.in.targets b/src/Aspire.Hosting.AppHost/build/Aspire.Hosting.AppHost.in.targets index aab23a9d425..bb35d9abd41 100644 --- a/src/Aspire.Hosting.AppHost/build/Aspire.Hosting.AppHost.in.targets +++ b/src/Aspire.Hosting.AppHost/build/Aspire.Hosting.AppHost.in.targets @@ -109,7 +109,7 @@ namespace Projects%3B - + diff --git a/src/Aspire.Hosting.Azure.AppContainers/ContainerAppExtensions.cs b/src/Aspire.Hosting.Azure.AppContainers/ContainerAppExtensions.cs index 649d33c33e1..6737ae61cd3 100644 --- a/src/Aspire.Hosting.Azure.AppContainers/ContainerAppExtensions.cs +++ b/src/Aspire.Hosting.Azure.AppContainers/ContainerAppExtensions.cs @@ -54,7 +54,7 @@ public static class ContainerAppExtensions /// /// /// - [Experimental("ASPIREACADOMAINS001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIREACADOMAINS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static void ConfigureCustomDomain(this ContainerApp app, IResourceBuilder customDomain, IResourceBuilder certificateName) { ArgumentNullException.ThrowIfNull(app); diff --git a/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs b/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs index fbfdef9dac7..ce6673f634d 100644 --- a/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs +++ b/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs @@ -65,7 +65,7 @@ public static IResourceBuilder RunAsEmulator(this IResour /// /// This version of the package defaults to the tag of the / container image. /// - [Experimental("ASPIRECOSMOSDB001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIRECOSMOSDB001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static IResourceBuilder RunAsPreviewEmulator(this IResourceBuilder builder, Action>? configureContainer = null) => RunAsEmulator(builder, configureContainer, useVNextPreview: true); @@ -289,7 +289,7 @@ public static IResourceBuilder AddContainer(this /// /// The Data Explorer is only available with . /// - [Experimental("ASPIRECOSMOSDB001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIRECOSMOSDB001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static IResourceBuilder WithDataExplorer(this IResourceBuilder builder, int? port = null) { ArgumentNullException.ThrowIfNull(builder); diff --git a/src/Aspire.Hosting.Azure/AzureEnvironmentResourceExtensions.cs b/src/Aspire.Hosting.Azure/AzureEnvironmentResourceExtensions.cs index 33bc05aef1a..e8c8ef76fd2 100644 --- a/src/Aspire.Hosting.Azure/AzureEnvironmentResourceExtensions.cs +++ b/src/Aspire.Hosting.Azure/AzureEnvironmentResourceExtensions.cs @@ -16,7 +16,7 @@ public static class AzureEnvironmentResourceExtensions /// /// The . /// The . - [Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static IResourceBuilder AddAzureEnvironment(this IDistributedApplicationBuilder builder) { if (builder.Resources.OfType().SingleOrDefault() is { } existingResource) @@ -56,7 +56,7 @@ public static IResourceBuilder AddAzureEnvironment(thi /// This method is used to set the location of the Azure environment resource. /// The location is used to determine where the resources will be deployed. /// - [Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static IResourceBuilder WithLocation( this IResourceBuilder builder, IResourceBuilder location) @@ -79,7 +79,7 @@ public static IResourceBuilder WithLocation( /// This method is used to set the resource group name of the Azure environment resource. /// The resource group name is used to determine where the resources will be deployed. /// - [Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static IResourceBuilder WithResourceGroup( this IResourceBuilder builder, IResourceBuilder resourceGroup) diff --git a/src/Aspire.Hosting.Azure/AzurePublisherOptions.cs b/src/Aspire.Hosting.Azure/AzurePublisherOptions.cs index ea78c03ddde..b8c421173a7 100644 --- a/src/Aspire.Hosting.Azure/AzurePublisherOptions.cs +++ b/src/Aspire.Hosting.Azure/AzurePublisherOptions.cs @@ -9,7 +9,7 @@ namespace Aspire.Hosting.Azure; /// /// Options which control generation of artifacts for deploying to Azure. /// -[Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] +[Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed class AzurePublisherOptions : PublishingOptions { } diff --git a/src/Aspire.Hosting.Azure/AzurePublishingContext.cs b/src/Aspire.Hosting.Azure/AzurePublishingContext.cs index bc6412fe40b..7d807ff7d6f 100644 --- a/src/Aspire.Hosting.Azure/AzurePublishingContext.cs +++ b/src/Aspire.Hosting.Azure/AzurePublishingContext.cs @@ -19,7 +19,7 @@ namespace Aspire.Hosting.Azure; /// publisher options, and execution context. It handles resource configuration and ensures /// that the bicep template is created in the specified output path. /// -[Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] +[Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed class AzurePublishingContext( AzurePublisherOptions publisherOptions, AzureProvisioningOptions provisioningOptions, diff --git a/src/Aspire.Hosting.Azure/IAzureContainerRegistry.cs b/src/Aspire.Hosting.Azure/IAzureContainerRegistry.cs index 67c39334377..e90c9847e47 100644 --- a/src/Aspire.Hosting.Azure/IAzureContainerRegistry.cs +++ b/src/Aspire.Hosting.Azure/IAzureContainerRegistry.cs @@ -9,7 +9,7 @@ namespace Aspire.Hosting.Azure; /// /// Represents Azure Container Registry information for deployment targets. /// -[Experimental("ASPIRECOMPUTE001")] +[Experimental("ASPIRECOMPUTE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public interface IAzureContainerRegistry : IContainerRegistry { /// diff --git a/src/Aspire.Hosting.Python/AssemblyInfo.cs b/src/Aspire.Hosting.Python/AssemblyInfo.cs index d866cbca5db..0a7b871b07b 100644 --- a/src/Aspire.Hosting.Python/AssemblyInfo.cs +++ b/src/Aspire.Hosting.Python/AssemblyInfo.cs @@ -3,4 +3,4 @@ using System.Diagnostics.CodeAnalysis; -[assembly: Experimental("ASPIREHOSTINGPYTHON001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] +[assembly: Experimental("ASPIREHOSTINGPYTHON001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] diff --git a/src/Aspire.Hosting/ApplicationModel/ComputeEnvironmentAnnotation.cs b/src/Aspire.Hosting/ApplicationModel/ComputeEnvironmentAnnotation.cs index ad6e2f105c5..25a71033530 100644 --- a/src/Aspire.Hosting/ApplicationModel/ComputeEnvironmentAnnotation.cs +++ b/src/Aspire.Hosting/ApplicationModel/ComputeEnvironmentAnnotation.cs @@ -5,7 +5,7 @@ namespace Aspire.Hosting.ApplicationModel; -[Experimental("ASPIRECOMPUTE001")] +[Experimental("ASPIRECOMPUTE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] internal sealed class ComputeEnvironmentAnnotation(IComputeEnvironmentResource computeEnvironment) : IResourceAnnotation { public IComputeEnvironmentResource ComputeEnvironment { get; } = computeEnvironment; diff --git a/src/Aspire.Hosting/ApplicationModel/DeploymentTargetAnnotation.cs b/src/Aspire.Hosting/ApplicationModel/DeploymentTargetAnnotation.cs index ecd130e1098..c93ceb8a4ab 100644 --- a/src/Aspire.Hosting/ApplicationModel/DeploymentTargetAnnotation.cs +++ b/src/Aspire.Hosting/ApplicationModel/DeploymentTargetAnnotation.cs @@ -19,12 +19,12 @@ public sealed class DeploymentTargetAnnotation(IResource target) : IResourceAnno /// Gets or sets the container registry information associated with /// the deployment target, if the deployment target is an image-based environment. /// - [Experimental("ASPIRECOMPUTE001")] + [Experimental("ASPIRECOMPUTE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public IContainerRegistry? ContainerRegistry { get; set; } /// /// Gets or sets the compute environment resource associated with the deployment target. /// - [Experimental("ASPIRECOMPUTE001")] + [Experimental("ASPIRECOMPUTE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public IComputeEnvironmentResource? ComputeEnvironment { get; set; } } diff --git a/src/Aspire.Hosting/ApplicationModel/IComputeEnvironmentResource.cs b/src/Aspire.Hosting/ApplicationModel/IComputeEnvironmentResource.cs index 9b2a6452978..754d321d524 100644 --- a/src/Aspire.Hosting/ApplicationModel/IComputeEnvironmentResource.cs +++ b/src/Aspire.Hosting/ApplicationModel/IComputeEnvironmentResource.cs @@ -8,7 +8,7 @@ namespace Aspire.Hosting.ApplicationModel; /// /// Represents a compute environment resource. /// -[Experimental("ASPIRECOMPUTE001")] +[Experimental("ASPIRECOMPUTE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public interface IComputeEnvironmentResource : IResource { } diff --git a/src/Aspire.Hosting/ApplicationModel/IComputeResource.cs b/src/Aspire.Hosting/ApplicationModel/IComputeResource.cs index 1ffd15b3c6f..9c50771e335 100644 --- a/src/Aspire.Hosting/ApplicationModel/IComputeResource.cs +++ b/src/Aspire.Hosting/ApplicationModel/IComputeResource.cs @@ -12,7 +12,7 @@ namespace Aspire.Hosting.ApplicationModel; /// A compute resource is a resource that can be hosted/executed on an . Examples /// include projects, containers, and other resources that can be executed on a compute environment. /// -[Experimental("ASPIRECOMPUTE001")] +[Experimental("ASPIRECOMPUTE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public interface IComputeResource : IResource { } diff --git a/src/Aspire.Hosting/ApplicationModel/IContainerRegistry.cs b/src/Aspire.Hosting/ApplicationModel/IContainerRegistry.cs index 4798efa25e1..a65e5c84ba9 100644 --- a/src/Aspire.Hosting/ApplicationModel/IContainerRegistry.cs +++ b/src/Aspire.Hosting/ApplicationModel/IContainerRegistry.cs @@ -8,7 +8,7 @@ namespace Aspire.Hosting.ApplicationModel; /// /// Represents container registry information for deployment targets. /// -[Experimental("ASPIRECOMPUTE001")] +[Experimental("ASPIRECOMPUTE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public interface IContainerRegistry { /// diff --git a/src/Aspire.Hosting/ApplicationModel/ProxySupportAnnotation.cs b/src/Aspire.Hosting/ApplicationModel/ProxySupportAnnotation.cs index 51bc876b095..ab1f1a1da86 100644 --- a/src/Aspire.Hosting/ApplicationModel/ProxySupportAnnotation.cs +++ b/src/Aspire.Hosting/ApplicationModel/ProxySupportAnnotation.cs @@ -15,7 +15,7 @@ public sealed class ProxySupportAnnotation : IResourceAnnotation /// /// Create a new instance of the class. /// - [Experimental("ASPIREPROXYENDPOINTS001")] + [Experimental("ASPIREPROXYENDPOINTS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public ProxySupportAnnotation() {} @@ -23,4 +23,4 @@ public ProxySupportAnnotation() /// Gets or sets the value indicating whether the proxy support is enabled for the resource. /// public required bool ProxyEnabled { get; set; } -} \ No newline at end of file +} diff --git a/src/Aspire.Hosting/ContainerResourceBuilderExtensions.cs b/src/Aspire.Hosting/ContainerResourceBuilderExtensions.cs index 106b98c39d3..36d20e5fb5a 100644 --- a/src/Aspire.Hosting/ContainerResourceBuilderExtensions.cs +++ b/src/Aspire.Hosting/ContainerResourceBuilderExtensions.cs @@ -850,7 +850,7 @@ public static IResourceBuilder WithContainerFiles(this IResourceBuilder /// The user needs to be careful to ensure that container endpoints are using unique ports when disabling proxy support as by default for proxy-less /// endpoints, Aspire will allocate the internal container port as the host port, which will increase the chance of port conflicts. /// - [Experimental("ASPIREPROXYENDPOINTS001")] + [Experimental("ASPIREPROXYENDPOINTS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static IResourceBuilder WithEndpointProxySupport(this IResourceBuilder builder, bool proxyEnabled) where T : ContainerResource { ArgumentNullException.ThrowIfNull(builder); diff --git a/src/Aspire.Hosting/PublisherDistributedApplicationBuilderExtensions.cs b/src/Aspire.Hosting/PublisherDistributedApplicationBuilderExtensions.cs index 18977f1fdf1..bd05a1cc379 100644 --- a/src/Aspire.Hosting/PublisherDistributedApplicationBuilderExtensions.cs +++ b/src/Aspire.Hosting/PublisherDistributedApplicationBuilderExtensions.cs @@ -20,7 +20,7 @@ public static class PublisherDistributedApplicationBuilderExtensions /// The . /// The name of the publisher. /// Callback to configure options for the publisher. - [Experimental("ASPIREPUBLISHERS001")] + [Experimental("ASPIREPUBLISHERS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static IDistributedApplicationBuilder AddPublisher(this IDistributedApplicationBuilder builder, string name, Action? configureOptions = null) where TPublisher : class, IDistributedApplicationPublisher where TPublisherOptions : class diff --git a/src/Aspire.Hosting/Publishing/NullPublishingActivityProgressReporter.cs b/src/Aspire.Hosting/Publishing/NullPublishingActivityProgressReporter.cs index 5dc5c746399..d5e1752b72b 100644 --- a/src/Aspire.Hosting/Publishing/NullPublishingActivityProgressReporter.cs +++ b/src/Aspire.Hosting/Publishing/NullPublishingActivityProgressReporter.cs @@ -8,7 +8,7 @@ namespace Aspire.Hosting.Publishing; /// /// Minimalistic reporter that does nothing. /// -[Experimental("ASPIREPUBLISHERS001")] +[Experimental("ASPIREPUBLISHERS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed class NullPublishingActivityProgressReporter : IPublishingActivityProgressReporter { /// diff --git a/src/Aspire.Hosting/Publishing/PublishingActivityProgressReporter.cs b/src/Aspire.Hosting/Publishing/PublishingActivityProgressReporter.cs index eaace05f507..3621b1cbab0 100644 --- a/src/Aspire.Hosting/Publishing/PublishingActivityProgressReporter.cs +++ b/src/Aspire.Hosting/Publishing/PublishingActivityProgressReporter.cs @@ -11,7 +11,7 @@ namespace Aspire.Hosting.Publishing; /// /// Represents a publishing activity. /// -[Experimental("ASPIREPUBLISHERS001")] +[Experimental("ASPIREPUBLISHERS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed class PublishingActivity { /// @@ -44,7 +44,7 @@ public PublishingActivity(string id, bool isPrimary = false) /// /// Represents the status of a publishing activity. /// -[Experimental("ASPIREPUBLISHERS001")] +[Experimental("ASPIREPUBLISHERS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed record PublishingActivityStatus { /// @@ -71,7 +71,7 @@ public sealed record PublishingActivityStatus /// /// Interface for reporting publishing activity progress. /// -[Experimental("ASPIREPUBLISHERS001")] +[Experimental("ASPIREPUBLISHERS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public interface IPublishingActivityProgressReporter { /// diff --git a/src/Aspire.Hosting/Publishing/ResourceContainerImageBuilder.cs b/src/Aspire.Hosting/Publishing/ResourceContainerImageBuilder.cs index 0ab76d76ce4..e7f09328dda 100644 --- a/src/Aspire.Hosting/Publishing/ResourceContainerImageBuilder.cs +++ b/src/Aspire.Hosting/Publishing/ResourceContainerImageBuilder.cs @@ -16,7 +16,7 @@ namespace Aspire.Hosting.Publishing; /// /// Provides a service to publishers for building containers that represent a resource. /// -[Experimental("ASPIREPUBLISHERS001")] +[Experimental("ASPIREPUBLISHERS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public interface IResourceContainerImageBuilder { /// diff --git a/src/Aspire.Hosting/ResourceBuilderExtensions.cs b/src/Aspire.Hosting/ResourceBuilderExtensions.cs index 93bb4334ea0..b69dfc79f1c 100644 --- a/src/Aspire.Hosting/ResourceBuilderExtensions.cs +++ b/src/Aspire.Hosting/ResourceBuilderExtensions.cs @@ -1991,7 +1991,7 @@ public static IResourceBuilder WithParentRelationship( /// /// This method allows associating a specific compute environment with the compute resource. /// - [Experimental("ASPIRECOMPUTE001")] + [Experimental("ASPIRECOMPUTE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static IResourceBuilder WithComputeEnvironment(this IResourceBuilder builder, IResourceBuilder computeEnvironmentResource) where T : IComputeResource { diff --git a/tests/Aspire.Hosting.Azure.Tests/PublicApiTests/AppContainersPublicApiTests.cs b/tests/Aspire.Hosting.Azure.Tests/PublicApiTests/AppContainersPublicApiTests.cs index 2124e4047e8..ede4f4801a4 100644 --- a/tests/Aspire.Hosting.Azure.Tests/PublicApiTests/AppContainersPublicApiTests.cs +++ b/tests/Aspire.Hosting.Azure.Tests/PublicApiTests/AppContainersPublicApiTests.cs @@ -113,7 +113,7 @@ public void PublishAsAzureContainerAppForProjectShouldThrowWhenConfigureIsNull() } [Fact] - [Experimental("ASPIREACADOMAINS001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIREACADOMAINS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public void ConfigureCustomDomainShouldThrowWhenAppIsNull() { using var builder = TestDistributedApplicationBuilder.Create(); @@ -128,7 +128,7 @@ public void ConfigureCustomDomainShouldThrowWhenAppIsNull() } [Fact] - [Experimental("ASPIREACADOMAINS001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIREACADOMAINS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public void ConfigureCustomDomainShouldThrowWhenCustomDomainIsNull() { using var builder = TestDistributedApplicationBuilder.Create(); @@ -143,7 +143,7 @@ public void ConfigureCustomDomainShouldThrowWhenCustomDomainIsNull() } [Fact] - [Experimental("ASPIREACADOMAINS001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIREACADOMAINS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public void ConfigureCustomDomainShouldThrowWhenCertificateNameIsNull() { using var builder = TestDistributedApplicationBuilder.Create(); diff --git a/tests/Aspire.Hosting.Azure.Tests/PublicApiTests/CosmosDBPublicApiTests.cs b/tests/Aspire.Hosting.Azure.Tests/PublicApiTests/CosmosDBPublicApiTests.cs index d976b3817fd..08be60f827f 100644 --- a/tests/Aspire.Hosting.Azure.Tests/PublicApiTests/CosmosDBPublicApiTests.cs +++ b/tests/Aspire.Hosting.Azure.Tests/PublicApiTests/CosmosDBPublicApiTests.cs @@ -212,7 +212,7 @@ public void RunAsEmulatorShouldThrowWhenBuilderIsNull() } [Fact] - [Experimental("ASPIRECOSMOSDB001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIRECOSMOSDB001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public void RunAsPreviewEmulatorShouldThrowWhenBuilderIsNull() { IResourceBuilder builder = null!; @@ -371,7 +371,7 @@ public void AddContainerShouldThrowWhenPartitionKeyPathIsNullOrEmpty(bool isNull } [Fact] - [Experimental("ASPIRECOSMOSDB001", UrlFormat = "https://aka.ms/dotnet/aspire/diagnostics#{0}")] + [Experimental("ASPIRECOSMOSDB001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public void WithDataExplorerShouldThrowWhenBuilderIsNull() { IResourceBuilder builder = null!;