当我添加对 .dll 文件的引用时,项目的编译输出有哪些变化?
(想象一下我添加了一个参考并重建。)
清单将记录对.dll
文件的引用——如果不使用,编译器将在编译的清单中删除该引用。所以,在这种情况下,没有影响。
如果您在此库中定义了任何扩展方法,为您现有的(未修改的)代码提供更好的匹配,则构成对该库的使用,并且将使用扩展方法。
如果这不是一个 .NET 程序集,而是一个 com/com+ dll,那么也会生成一个包装器。
关于已编译程序集的 MSIL 部分,其他任何内容都不应更改。
如果它只是一个参考(并假设 dll 是一个程序集) - 什么都没有;未使用的引用被编译器静默删除,在您的场景中,您没有添加任何使用程序集的代码(即一些使用新 dll 中的类型的代码)。请注意,我在这里做了一个轻微的假设,即新 dll(在已经使用的命名空间中)中没有扩展方法,为现有扩展方法的使用提供了更好的匹配。
如果您标记了对 Copy Local = True 的引用,那么在您的输出目录中,您将获得额外的 dll(但在内部,您的程序集不会正式引用它 - 如果您的代码不接触程序集,该引用仍然会被删除) .