不太确定在哪里问这个。
基本上,我处理产品的本地化。我需要一种从编译的程序集中提取所有文字字符串的方法。我需要获取行号和源文件(用于比较目的)。我一直在使用FxCop,我刚刚创建了一条规则来吐出所有“ldstr”指令。但是,这依赖于过时的FxCop(我相信)。我也考虑过使用ildasm,但我找不到任何关于如何解析输出以可靠地检索我需要的信息的教程。
那么,有没有一个实用程序来处理这个?一个我没想到的简单方法?我想避免使用像ReSharper这样的扩展,因为它只能在解决方案的当前状态下运行;例如我无法生成用于比较的输出。
答案 0 :(得分:2)
ildasm可以做到这一点:
ildasm.exe /text /metadata=heaps mscorlib.dll >out.txt
// User Strings
// -------------------------------------------------------
// 70000001 : ( 4) L"info"
// 7000000b : ( 2) L", "
// 70000011 : ( 5) L"value"
// 7000001d : ( 1) L"D"
...
答案 1 :(得分:1)
如果您使用的是Visual Studio,则可以运行以下宏
Sub TemporaryMacro()
DTE.ExecuteCommand("Edit.FindinFiles")
DTE.Find.FindWhat = ":q"
DTE.Find.Target = vsFindTarget.vsFindTargetFiles
DTE.Find.MatchCase = False
DTE.Find.MatchWholeWord = False
DTE.Find.MatchInHiddenText = True
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
DTE.Find.SearchPath = "C:\yourproject"
DTE.Find.SearchSubfolders = True
DTE.Find.FilesOfType = "*.*"
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResults1
DTE.Find.Action = vsFindAction.vsFindActionFindAll
End Sub
基本上它正在对目录中的:q 引用字符串进行正则表达式搜索,该目录将为您提供源代码中所有带引号的字符串
答案 2 :(得分:0)