代码之家  ›  专栏  ›  技术社区  ›  Maslow

在t4中使用system.reflection.assembly.load(system.io.file.readallbytes(path))会产生什么后果?

  •  1
  • Maslow  · 技术社区  · 15 年前
    System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(path)) 
    

    因此,这是一个解决方案,不能够使用t4来反映或读取项目或解决方案中的其他文件,而不需要从中锁定二进制文件。 post . 这些评论暗示着记忆问题。

    这些评论谈到了不卸载的缺点,在您工作的时候,这会被垃圾收集吗?

    如果您t4使用此代码生成某些内容,更改其工作的文件或t4,然后重新运行t4,这会是内存泄漏吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Oleg Sych    15 年前

    它取决于程序集的数量和大小。t4在运行25次后回收代码生成AppDomain,因此这可能不是问题。这里更多: http://www.olegsych.com/2008/05/t4-architecture/

        2
  •  0
  •   BALKANGraph    15 年前

    我认为最好的方法是制作程序集的影子副本

    谢谢你 Muse垂直扩展