Skip to content

Satellite assemblies with 3-character language codes are not copied to the output from NuGet packages #10898

@NightOwl888

Description

@NightOwl888

Issue Description

When satellite assemblies are packaged in .nupkg files and then referenced by another project, none of the cultures with 3-character language codes are copied into the build output.

This is known to happen for build, publish, and pack as tool. There may be more cases, such as single file with embedded resources.

The behavior is the same in Visual Studio 2022 (Version 17.11.5) as well as the .NET SDK 8.0.403.

The following neutral cultures are known to be failing:

agq ars asa ast bas bem bez brx ccp cgg chr ckb dav dje dsb dua dyo ebu ewo fil fur gsw guz haw hsb jgo jmc kab kam kde kea khq kkj kln kok ksb ksf ksh lag lkt lrc luo luy mas mer mfe mgh mgo mua mzn naq nds nmg nnh nus nyn qu rof rwk sah saq sbp seh ses shi shi-Latn shi-Tfng smn teo twq tzm vai vai-Latn vai-Vaii vun wae xog yav zgh

Feature Request:

We have to patch this for all of the SDK versions in the wild. This is being done with our NuGet package using a buildTransitive .targets file. Please provide a way to detect when running on an SDK that you have fixed so we can skip our patch.

Steps to Reproduce

From the repro project: https://github.com/NightOwl888/IssueMSBuild3LetterLanguageCodes

  1. Build ProjectA. It will create a ProjectA.1.0.0.nupkg file in the repo root.
  2. Check the contents of ProjectA.1.0.0.nupkg. Both en and agq languages are present, as expected.
  3. Build ProjectB.
  4. Check the build output. Only en is present, agq is not.

Expected Behavior

MSBuild copies all .resources.dll files and their directory to the output.

Actual Behavior

MSBuild copies satellite assemblies for cultures with 2-letter language codes, but does not copy the ones for 3-letter language codes to the output.

Analysis

No response

Versions & Configurations

MSBuild version 17.11.9+a69bbaaf5 for .NET
17.11.9.46202


F:\Users\shad\source\repos\IssueMSBuild3LetterLanguageCodes>dotnet --version
8.0.403

This is on Windows 10 x64.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions