我的应用程序中有一个很大的 Resources.resx 文件,我正在访问它们
MyResources.GetString("res1");
如何检查 .resx 文件中的每个条目“条目”是否存在至少一个调用MyResources.GetString("Entry")
(这意味着每个资源都在某处使用)
,以及如何检查每个调用是否MyResources.GetString("Entry")
存在名为“Entry”的资源(没有调用不存在的资源)?
我的应用程序中有一个很大的 Resources.resx 文件,我正在访问它们
MyResources.GetString("res1");
如何检查 .resx 文件中的每个条目“条目”是否存在至少一个调用MyResources.GetString("Entry")
(这意味着每个资源都在某处使用)
,以及如何检查每个调用是否MyResources.GetString("Entry")
存在名为“Entry”的资源(没有调用不存在的资源)?
发现未使用的资源是可能的,但很繁琐:
(1) 确保代码分析警告 CA1811 已打开。
(2) 在您的 Resources.Designer.CS 文件(或其他适用的设计器文件)中注释掉以下行:
[global:: System.CodeDom.Compiler.GeneratedCodeAttribute( ...
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global:: System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
(3) 通过在“class”前面加上“static”二字,将类改为静态类:
internal static class Resources {
(4) 注释掉默认构造函数。
(5) 注释掉任何“InternalsVisibleTo”行(这些通常在“AssemblyInfo.cs”中)。
(6) 编译你的程序。现在应该警告您任何未使用的资源。
(7) 删除你未使用的资源。(请注意,更改任何资源都会重新生成 Resources.Designer.cs 文件。)
我不确定如何找到未定义的资源。