gpt4 book ai didi

.net - ILMerge 实际上是合并程序集,还是只是将所有内容放入一个文件中?

转载 作者:行者123 更新时间:2023-12-02 18:05:35 25 4
gpt4 key购买 nike

ILMerge 是做什么的?

它是创建一个新的程序集,还是只是将多个程序集放入一个 dll 中?

我是从以下角度问的:

  • 当我将具有 InternalsVisibleTo 属性的程序集相互合并时会发生什么?
  • 如果我从完全限定的程序集名称的字符串进行反射,会发生什么

谢谢

最佳答案

我不确定您试图在合并程序集和将所有内容放入一个文件之间做出什么区别。但它的作用是获取一组 .Net 程序集并生成一个包含所有程序集的组合内容的单个程序集。

这对正在合并的程序集的 InternalsVisibleTo 属性没有影响。运行时使用此属性来允许访问程序集之间的内部构造(否则这是非法的)。由于它们现在都在一个程序集中,因此它们可以自由访问彼此的内部类型,而无需使用InternalsVisibleTo。简而言之,如果内部访问在合并之前有效,那么它在合并后也将有效。

我不确定您所说的反射和完全限定的程序集名称是什么意思。但我能想到的似乎有两种情况

  1. 在运行时获取类型程序集限定名称。这仍然可以正常工作,但您将获得合并的程序集名称而不是原始程序集名称
  2. 将类型的限定名称硬编码到项目中。如果您在合并之前使用程序集名称,这将导致问题,因为该类型不再存在。

关于.net - ILMerge 实际上是合并程序集,还是只是将所有内容放入一个文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4034782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com