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”或它的某一个依赖项。系统找不到指定的文件。
如何解决?
netcoreapp3.1是应用程序dll,netstandard2.0生成的是类库dll。要加载也应该可以,但当前项目的目标框架必须是netcoreapp3.1、.net5.0、.net6.0
当前项目是.NET Core 我的目的是在T4模版用Assembly.LoadFile后用GetTypes()去分析 Entity.dll,自动生成一些接口或固定的东西,奇怪的是,我将Entity这个项目用netcore3.1编译时,就无法分析,用netstandard2.0 编译就可以分析
@孤灯浪子: 呵呵呵呵,T4这个坑我前不久也刚趟过,默认的T4编译器不支持.net core,github上有第三方的支持.net core的,试用了一下没调通,放弃了。
项目周期紧,先前准备偷个懒,起用用以前的代码生成器生成一些代码,结果发现当前T4不支持.net core库,回到老老实实写增删改查了。
当前项目的 target framework 是什么?
当前项目是.NET Core 我的目的是在T4模版用Assembly.LoadFile后用GetTypes()去分析 Entity.dll,自动生成一些接口或固定的东西,奇怪的是,我将Entity这个项目用netcore3.1编译时,就无法分析,用netstandard2.0 编译就可以分析