Skip to content

Add regression test for contentFiles include with leading separator - #7600

Merged
donnie-msft merged 1 commit into
devfrom
dev-donnie-msft-contentFilesLeadingSlashTest
Jul 30, 2026
Merged

donnie-msft merged 1 commit into
devfrom
dev-donnie-msft-contentFilesLeadingSlashTest

Conversation

@donnie-msft

Copy link
Copy Markdown
Contributor

Bug

Fixes: https://github.com/NuGet/Client.Engineering/issues/3901

Description

A customer reported that in VS 18.8, a contentFiles entry with a leading separator in the include path was silently ignored when restoring in Visual Studio.
e.g.  \any\net10.0\data\* had the configured buildAction and copyToOutput dropped in VS, while dotnet build worked correctly.

In VS 18.9, this was already fixed, but no test was added for the scenario.

Root cause

The content-file globbing introduced in #7338 built match paths as MatcherRoot ("ROOT/" ) + the relative path. When an include starts with a separator, this produced a malformed path (ROOT/\any ) that Microsoft.Extensions.FileSystemGlobbing  failed to match. The entry was dropped and its build action fell back to the default (Compile) silently with no error.

The bug was already fixed by #7405, which reworked matching to use InMemoryDirectoryInfo + Matcher.Execute . However, no test ever covered this scenario, so the fix is unguarded against regression.

What this adds

This test covers leading forward-slash, leading backslash, interior-backslash, and canonical include forms. Each asserts the resolved build action is None (the authored value) rather than the default Compile , proving the glob matched.

Verification

Test passes on dev (has fix from #7405).
Test FAILs on release/7.8.x for the leading-separator cases (Expected: None, Actual: Compile) and this confirms it reproduces the customer regression.

PR Checklist

  • Meaningful title, helpful description and a linked NuGet/Home issue
  • Added tests
  • Link to an issue or pull request to update docs if this PR changes settings, environment variables, new feature, etc.

@donnie-msft
donnie-msft requested a review from a team as a code owner July 28, 2026 14:22
@donnie-msft
donnie-msft merged commit 4a1790c into dev Jul 30, 2026
17 of 18 checks passed
@donnie-msft
donnie-msft deleted the dev-donnie-msft-contentFilesLeadingSlashTest branch July 30, 2026 20:13
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