使用t4模板而不是当前正在执行的程序集时,从解决方案中获取所有程序集

时间:2011-12-08 14:17:53

标签: c# visual-studio reflection t4

我正在使用T4模板来尝试输出我的解决方案中使用的所有程序集。但是,在.tt文件中,所有已加载的程序集与父项目或解决方案无关,因为我认为这些是构建管理器所需的所有程序集。

我想在解析.tt文件时迭代当前解决方案中的所有程序集。 有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:2)

不幸的是,从T4中反映当前解决方案中的程序集将不起作用。这是因为除非卸载整个AppDomain,否则无法卸载程序集一旦加载。在实践中,这意味着在第一次反映之后,程序集将变为写入锁定,并且您只能通过退出Visual Studio来解锁它们。

一种可能的解决方法是使用Introspection而不是反射,如here所述(包括示例代码)。