【发布时间】:2011-12-08 14:17:52
【问题描述】:
我正在使用 T4 模板来尝试输出我的解决方案中使用的所有程序集。但是,在 .tt 文件中,所有加载的程序集都与父项目或解决方案无关,因为我认为这些都是构建管理器所需的程序集。
我想在解析 .tt 文件时遍历当前解决方案中的所有程序集。 有什么方法可以实现吗?
【问题讨论】:
标签: c# visual-studio reflection t4
我正在使用 T4 模板来尝试输出我的解决方案中使用的所有程序集。但是,在 .tt 文件中,所有加载的程序集都与父项目或解决方案无关,因为我认为这些都是构建管理器所需的程序集。
我想在解析 .tt 文件时遍历当前解决方案中的所有程序集。 有什么方法可以实现吗?
【问题讨论】:
标签: c# visual-studio reflection t4
很遗憾,在 T4 中反映当前解决方案中的程序集将不起作用。这是因为程序集一旦加载,就无法卸载,除非您卸载整个 AppDomain。实际上,这意味着在您第一次反映程序集后,程序集将变为写锁定状态,您只能通过退出 Visual Studio 来解锁它们。
一种可能的解决方法是使用自省而不是反射,如here 所述(包括示例代码)。
【讨论】: