在 T4 中使用 System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(path)) 有何后果?

发布于 2024-08-27 19:10:59 字数 367 浏览 6 评论 0原文

System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(path)) 

因此,这是一种解决方法,无法使用 T4 反映或读取项目或解决方案中的其他文件,而不锁定此 帖子。评论暗示内存问题。

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

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

System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(path)) 

So this is a work around to not being able to use T4 to reflect or read other files in the project or solution without locking the binaries from this post. The comments imply a memory issue.

The comments talk about a no-unloading downside, would this be garbage collected while you are working?

would it be a memory leak if you T4 generate something using this code, change a file it worked off of or the T4 and then the T4 is re-run?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

虫児飞 2024-09-03 19:10:59

这取决于组件的数量和尺寸。 T4 在运行 25 次后回收代码生成 AppDomain,因此可能不是问题。更多信息请参见:http://www.olegsych.com/2008/05/t4-架构/

It depends on the number and size of your assemblies. T4 recycles the code generation AppDomain after 25 runs, so it may not be a problem. More here: http://www.olegsych.com/2008/05/t4-architecture/

╭⌒浅淡时光〆 2024-09-03 19:10:59

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

谢谢
Muse VS 扩展

I think that the best way of doing this is to make a shadow copy of the assembly

Thank you
Muse VSExtensions

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文