Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Import support for IIS Express #17

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

Kralizek
Copy link
Contributor

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

@Kralizek
Copy link
Contributor Author

Kralizek commented Jun 20, 2024

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