ILMerge 是做什么的?
它是创建一个新程序集,还是将多个程序集放入一个 dll 中?
我从以下角度提问:
- 当我合并具有
InternalsVisibleTo
彼此属性的程序集时会发生什么? - 如果我从完全限定的程序集名称的字符串中进行反射会发生什么
谢谢
我不确定您要在合并程序集和将所有内容放入一个文件之间做出什么区分。它所做的是采用一组 .Net 程序集并生成一个包含所有程序集的组合内容的单个程序集。
InternalsVisibleTo
这对正在合并的程序集的属性没有影响。运行时使用此属性来允许访问internal
程序集之间的构造(否则这是非法的)。由于它们现在都在一个程序集中,尽管它们可以自由访问彼此的internal
类型而无需使用InternalsVisibleTo
. 所以简而言之,如果在internal
合并之前访问是有效的,那么在合并之后也是有效的。
我不确定反射和完全限定的程序集名称是什么意思。但似乎有两种情况我能想到