-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Satellite assemblies with 3-character language codes are not copied to the output from NuGet packages #10898
Description
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
- Build ProjectA. It will create a ProjectA.1.0.0.nupkg file in the repo root.
- Check the contents of ProjectA.1.0.0.nupkg. Both
enandagqlanguages are present, as expected. - Build ProjectB.
- Check the build output. Only
enis present,agqis 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.