在构建期间删除未使用的类和资源

时间:2010-08-16 10:59:44

标签: .net msbuild

  

这个问题更多的是理论性而非实际用途。

我知道有几个程序可以找到未使用的代码,但这个问题与此有点不同。

是否可以在构建期间或之后找到未使用的代码和资源并将其删除?我有几个'通用'库,它们在许多项目中共享,每个项目只使用这些库中的一部分(重叠并且可能在将来发生变化,所以不能直接重构,我不想进一步破坏它们下)。我的想法是删除这些未使用的部分,以保持结果文件的小。

那么,我有什么机会实现这个目标?

3 个答案:

答案 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作为依赖。