You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 2.0程序集搭配T4模板加载System.Runtime失败求助

解决T4模板引用.NET Core程序集时System.Runtime加载失败的问题

我之前也碰到过一模一样的坑,核心问题在于T4模板默认是运行在.NET Framework环境下的,而你写的Project.CodeGen是针对netcoreapp2.0编译的,两者的依赖体系不兼容,才会出现找不到System.Runtime 4.2.0.0的错误。下面给你具体的解决步骤:

1. 将类库目标框架改为netstandard2.0

把Project.CodeGen的项目文件里的目标框架从netcoreapp2.0改成netstandard2.0——这是关键!因为netstandard是跨.NET平台的类库标准,能同时被.NET Framework和.NET Core兼容,T4模板的运行环境(.NET Framework)可以正确识别它的依赖链。

修改后的项目文件片段大概是这样:

<PropertyGroup>
  <TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>

2. 更新T4模板的程序集引用路径

把模板里的引用路径改成netstandard2.0的输出目录:

<#@ assembly name="$(SolutionDir)Project.CodeGen\bin\Debug\netstandard2.0\Project.CodeGen.dll" #>
<#@ import namespace="Project.CodeGen" #>

3. 清理并重新生成解决方案

先清理Project.CodeGen的输出目录,然后重新生成类库,再保存T4模板触发转换——这一步能避免旧的编译文件干扰。

额外注意点

  • 别手动给T4模板加System.Runtime的引用!当你用netstandard类库时,依赖会自动被解析,手动添加反而可能引发版本冲突。
  • 确保你的Visual Studio安装了.NET Standard 2.0的SDK(一般最新版VS都会自带,如果没有的话可以补装对应版本的SDK)。

这样操作之后,T4模板应该就能正常实例化CodeGenHelper类了。

内容的提问来源于stack exchange,提问作者Steve Stokes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:58:30