Open Kralizek opened 2 months ago
I'd like to add the possibility to choose if the X86 or X64 edition should be used.
Option 1: boolean field that selects 32/64 bits
public static IResourceBuilder<IISExpressResource> AddIISExpress(this IDistributedApplicationBuilder builder, string name, string applicationPath, bool use64Bits = true)
Option 2: similar but with an enum
public static IResourceBuilder<IISExpressResource> AddIISExpress(this IDistributedApplicationBuilder builder, string name, string applicationPath, IISExpressArch arch = IISExpressArch.X64)
public enum IISExpressArch { X64, X86 }
Option 3: take in a string with the executable path and provide the Program Files X64 and X86 as static properties that can be used.
public static readonly string ProgramFilesX64 => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "IIS Express", "iisexpress.exe");
public static readonly string ProgramFilesX86 => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "IIS Express", "iisexpress.exe");
public static IResourceBuilder<IISExpressResource> AddIISExpress(this IDistributedApplicationBuilder builder, string name, string applicationPath, string? iisExpressPath = null)
{
...
iisExpressPath ?= ProgramFilesX64;
...
}
~Option 4~: I was considering using a builder pattern by adding an extension method, but the Command property of the ExecutableResource is read only.
public static IResourceBuilder<IISExpressResource> Use32Bits(this IResourceBuilder<IISExpressResource> builder)
{
// ...
}
So I have no idea what's the preferred course of action.
Importing IIS Express resource from this discussion in the Aspire repo: https://github.com/dotnet/aspire/discussions/4383#discussioncomment-9674132