Add warning for apphost file naming collision with culture directories (NETSDK1229) #49732
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Projects whose assembly name matches a culture name (
cs
,de
,es
,fr
,it
,ja
,ko
,pl
,pt-BR
,ru
,tr
,zh-Hans
,zh-Hant
) can fail to build on Unix systems when using packages that deploy culture-specific resources.The issue occurs because:
$(AssemblyName)$(_NativeExecutableExtension)
$(_NativeExecutableExtension)
is empty, so the file is just named after the assembly (e.g., "cs")Example failure:
Results in:
Changes Made
Added NETSDK1229 Warning:
Strings.resx
with clear description and solutionsSatelliteResourceLanguages
propertyImplemented Detection Target:
_WarnForApphostCultureCollision
target inMicrosoft.NET.Sdk.targets
ResolvePackageAssets
to ensureResourceCopyLocalItems
are availableUseAppHost=true
Warning Message:
This provides early detection of the collision issue with clear guidance on how to resolve it, improving the developer experience for this edge case.
Fixes #49731.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.