dotnet/runtime

Facades and NotSupported assemblies are bloated with resources they don't use

Open

#28,888 建立於 2019年3月6日

在 GitHub 查看
 (9 留言) (2 反應) (0 負責人)C# (5,445 fork)batch import
area-Infrastructure-librariesenhancementhelp wanted

倉庫指標

Star
 (17,886 star)
PR 合併指標
 (平均合併 12天 11小時) (30 天內合併 661 個 PR)

描述

Often times we have builds that cross-compile and have very different implementations. Our resource conventions don't force folks to think about this, so the resources are often a superset of all configurations.

We should change the defaults so that this isn't the case.

I propose the following:

  1. By default PartialFacades should not include any resources, unless a project opts-in. Folks should discover this relatively easily as SR.Foo will fail to work in the partial source. They can fix it by setting a flag and potentially providing specific resources for that build of the library.
  2. By default NotSupported assemblies require a unique resx. We can change the path convention to something like Resources\NotSupported.resx instead of strings.resx

Across all our builds this will save over a MB of unused resources.

貢獻者指南