Skip to content

Import support for IIS Express - #17

Draft
Kralizek wants to merge 2 commits into
aspirant-project:mainfrom
Kralizek:iis-express
Draft

Import support for IIS Express#17
Kralizek wants to merge 2 commits into
aspirant-project:mainfrom
Kralizek:iis-express

Conversation

@Kralizek

Copy link
Copy Markdown
Contributor

Importing IIS Express resource from this discussion in the Aspire repo: microsoft/aspire#4383 (comment)

@Kralizek

Kralizek commented Jun 20, 2024

Copy link
Copy Markdown
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant