diff --git a/src/Aspire.Hosting/Dcp/Locations.cs b/src/Aspire.Hosting/Dcp/Locations.cs index f84a351ab2..38f122e66e 100644 --- a/src/Aspire.Hosting/Dcp/Locations.cs +++ b/src/Aspire.Hosting/Dcp/Locations.cs @@ -3,11 +3,19 @@ namespace Aspire.Hosting.Dcp; -internal sealed class Locations(string basePath) +internal sealed class Locations { - public string DcpSessionDir => basePath; + private string? _basePath; + + public string DcpSessionDir => GetOrCreateBasePath(); public string DcpKubeconfigPath => Path.Combine(DcpSessionDir, "kubeconfig"); public string DcpLogSocket => Path.Combine(DcpSessionDir, "output.sock"); + + private string GetOrCreateBasePath() + { + _basePath ??= Directory.CreateTempSubdirectory("aspire.").FullName; + return _basePath; + } } diff --git a/src/Aspire.Hosting/DistributedApplicationBuilder.cs b/src/Aspire.Hosting/DistributedApplicationBuilder.cs index cf5e892537..a3d7fd965a 100644 --- a/src/Aspire.Hosting/DistributedApplicationBuilder.cs +++ b/src/Aspire.Hosting/DistributedApplicationBuilder.cs @@ -51,8 +51,7 @@ public DistributedApplicationBuilder(DistributedApplicationOptions options) _innerBuilder.Services.AddHostedService(); // We need a unique path per application instance - var path = Directory.CreateTempSubdirectory("aspire.").FullName; - _innerBuilder.Services.AddSingleton(new Locations(path)); + _innerBuilder.Services.AddSingleton(new Locations()); _innerBuilder.Services.AddSingleton(); // Publishing support