@zespri,不过我有一个问题:你说“如果从这个dll中间接使用任何功能”。我猜这个陈述是无关紧要的,因为即使我只是在A中引用B而不调用需要在B中引用C的代码,我最终仍然会得到B本身引用的所有库。 - Matt
这基本上就是我面临的问题。我构建了一个共享库,它自身引用其他外部第三方库。但每次链接到我的构建库时,无论是否使用库内容,我的项目立即因为所有复制的dll而膨胀到100mb。 - Matt
@Freddy .net确实只在某些情况下加载dlls。因此,如果你删除了一个被引用的dll,它并不会影响应用程序。这种情况最有可能发生在你只使用库中的一个函数时,而该库需要依赖项,而所需的函数却没有。在这里你无能为力。你可以使用不同(更轻量级)的库,或者使用静态分析工具来确认使用了什么和没使用什么,最后,如果你100%确定某个被引用的库没有被使用,你可以包含一个构建步骤来删除它。 - Andrew Savinykh