这个问题更多的是理论性而非实际用途。
我知道有几个程序可以找到未使用的代码,但这个问题与此有点不同。
是否可以在构建期间或之后找到未使用的代码和资源并将其删除?我有几个'通用'库,它们在许多项目中共享,每个项目只使用这些库中的一部分(重叠并且可能在将来发生变化,所以不能直接重构,我不想进一步破坏它们下)。我的想法是删除这些未使用的部分,以保持结果文件的小。
那么,我有什么机会实现这个目标?
答案 0 :(得分:2)
这是JIT编译器的非常很好的功能之一:它只编译实际执行的代码。永远不会使用DLL中的死代码。它甚至不会被加载到内存中。您可以从程序的VM大小中削减10 KB。这样可以节省0.0005%的32位机器。
不要打扰。
答案 1 :(得分:2)
我所知道的所有商业混淆器都会选择删除未使用的代码。我不知道一个免费的解决方案(所有免费试用不包含此功能)。
答案 2 :(得分:0)
Mono-Framework中有一个名为Mono.Linker的工具。
链接器是一个工具,可用于仅运送一组程序可能需要运行的最小可能函数集,而不是完整库。
不幸的是,似乎没有任何预构建二进制文件。你必须克隆Mono-git-repository并自己构建它。它位于/mcs/tools/linker
下,需要Cecil-Library作为依赖。