首页 新闻 会员 周边

各位大佬:在程序中Assembly GetExportedTypes() 可以读取DLL中的类,但T4模版中为何失败?

0
悬赏园豆:10 [已解决问题] 解决于 2022-09-15 09:57

Assembly ass = Assembly.LoadFile("D:\桌面\Core\WebApplication3\Entity\bin\Debug\net6\Entity.dll");
foreach (Type t in ass.GetExportedTypes() )
{

}
以上代码在程序中可以正常读取类名
但在T4模板中出现类似于下列错误,不是未能加载这个,就是那个

正在运行转换: System.IO.FileNotFoundException: 未能加载文件或程序集“System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。

如何解决?

孤灯浪子的主页 孤灯浪子 | 初学一级 | 园豆:193
提问于:2022-09-08 17:03
< >
分享
最佳答案
0

netcoreapp3.1是应用程序dll,netstandard2.0生成的是类库dll。要加载也应该可以,但当前项目的目标框架必须是netcoreapp3.1、.net5.0、.net6.0

收获园豆:5
Adming | 初学一级 |园豆:119 | 2022-09-09 08:42

当前项目是.NET Core 我的目的是在T4模版用Assembly.LoadFile后用GetTypes()去分析 Entity.dll,自动生成一些接口或固定的东西,奇怪的是,我将Entity这个项目用netcore3.1编译时,就无法分析,用netstandard2.0 编译就可以分析

孤灯浪子 | 园豆:193 (初学一级) | 2022-09-09 13:55

@孤灯浪子: 呵呵呵呵,T4这个坑我前不久也刚趟过,默认的T4编译器不支持.net core,github上有第三方的支持.net core的,试用了一下没调通,放弃了。

Adming | 园豆:119 (初学一级) | 2022-09-09 13:57

项目周期紧,先前准备偷个懒,起用用以前的代码生成器生成一些代码,结果发现当前T4不支持.net core库,回到老老实实写增删改查了。

Adming | 园豆:119 (初学一级) | 2022-09-09 14:01
其他回答(1)
0

当前项目的 target framework 是什么?

收获园豆:5
dudu | 园豆:31003 (高人七级) | 2022-09-08 17:36

当前项目是.NET Core 我的目的是在T4模版用Assembly.LoadFile后用GetTypes()去分析 Entity.dll,自动生成一些接口或固定的东西,奇怪的是,我将Entity这个项目用netcore3.1编译时,就无法分析,用netstandard2.0 编译就可以分析

支持(0) 反对(0) 孤灯浪子 | 园豆:193 (初学一级) | 2022-09-09 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册