Skip to content

[release/13.2] Fix 13.2 IDE execution regressions for Azure Functions and class library projects#15741

Closed
adamint wants to merge 1 commit intomicrosoft:release/13.2from
adamint:backport/pr-15714-to-release/13.2
Closed

[release/13.2] Fix 13.2 IDE execution regressions for Azure Functions and class library projects#15741
adamint wants to merge 1 commit intomicrosoft:release/13.2from
adamint:backport/pr-15714-to-release/13.2

Conversation

@adamint
Copy link
Copy Markdown
Member

@adamint adamint commented Apr 1, 2026

Backport of #15714 to release/13.2

/cc @adamint

Customer Impact

Project resources using custom debug types (Azure Functions, AWS Lambda class libraries) or added via AddResource without WithDebugSupport no longer received IDE execution in Visual Studio or VS Code after upgrading to Aspire 13.2, breaking debugging and symbol loading.

This PR fixes regressions in DcpExecutor.PrepareProjectExecutables() by adding a fallback branch that provides IDE execution with a standard ProjectLaunchConfiguration when in a debug session but either no SupportsDebuggingAnnotation exists (e.g. AddResource-based ProjectResource subclasses) or the IDE did not send DEBUG_SESSION_INFO (Visual Studio scenario where VS handles all project types natively). This restores pre-13.2 behavior.

In the VS Code extension, adds support for Executable command launch profiles used by AWS Lambda. When the launch profile specifies commandName: "Executable" with an executablePath, the extension builds the project and uses the profile's executable path as the debug program instead of the project output DLL.

Fixes #15606
Fixes #15647
Fixes #15378
Fixes #15699

Testing

Unit tests + manual E2E validation with standard, custom-debug, Azure Functions, and class library project types.

Risk

Low-Medium. Changes are scoped to debug session setup and VS Code extension launch profile handling.

Regression?

Yes

@adamint adamint requested a review from mitchdenny as a code owner April 1, 2026 03:43
Copilot AI review requested due to automatic review settings April 1, 2026 03:43
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 1, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 15741

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 15741"

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Backport that restores IDE execution behavior for project resources in Aspire 13.2 debug sessions (notably Azure Functions and class-library-based AWS Lambda scenarios) and updates the VS Code extension to support Executable launch profiles.

Changes:

  • Adds a debug-session fallback in DcpExecutor.PrepareProjectExecutables() to ensure IDE execution is configured even when SupportsDebuggingAnnotation is missing or DEBUG_SESSION_INFO isn’t provided.
  • Adjusts SupportsDebugging evaluation so "project" launch support is treated as implicit during debug sessions.
  • Extends the VS Code extension to honor commandName: "Executable" launch profiles by using executablePath as the debug program and adds a regression test.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs Adds/updates coverage for debug-session IDE execution fallback behavior (but currently contains a merge conflict).
src/Aspire.Hosting/Utils/ExtensionUtils.cs Treats "project" launch support as implicitly supported in debug sessions; custom types still require explicit advertisement.
src/Aspire.Hosting/Dcp/DcpExecutor.cs Implements IDE execution fallback logic and factors ProjectLaunchConfiguration construction into a helper.
extension/src/debugger/launchProfiles.ts Adds a command-name constant and makes Project profile detection case-insensitive.
extension/src/debugger/languages/dotnet.ts Adds handling for Executable launch profiles (e.g., AWS Lambda) by launching the specified executable and still building the project.
extension/src/test/dotnetDebugger.test.ts Adds a test validating Executable launch profile behavior (program/args/cwd/env + build).

Comment on lines +2684 to +2686
<<<<<<< ours
=======
// Verifies that environment value callbacks are invoked only once per container startup.
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The file contains unresolved Git merge conflict markers (e.g., <<<<<<< ours, =======, >>>>>>> theirs). This will not compile and also risks silently dropping/duplicating tests. Resolve the conflict by choosing the intended test block(s) and removing the conflict markers.

Copilot uses AI. Check for mistakes.
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.

2 participants