微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Rider 的 T4 模板中使用 net5.0

如何解决在 Rider 的 T4 模板中使用 net5.0

我对 netstandardnetframeworknetX间的兼容性以及单声道如何融入图片感到有些困惑...

我知道 Rider 的 T4 引擎在单声道上运行,但这是否意味着我不能在 T4 模板中使用 net5.0 程序集?

目前,我有一个 net5.0 项目,引用 net5.0 nuget 程序集。

在我的 T4 模板中,我使用 `

引用 bin/Debug/net5.0 中的程序集 DLL

当我通过 net5.0 Mono.TextTemplating.TemplateGenerator.TemplateGenerator 控制台应用程序中运行 T4 模板时,模板会起作用。

但是,如果我在解决方案资源管理器中右键单击一个模板并选择“运行模板”,我会得到一个核心 System.* 库丢失的错误列表,例如

  Generate.tt(21,25): [CS0012] The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime,Version=5.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'.

这是 Rider 中的错误吗?

解决方法

由于实现细节,Rider 编译 T4 文件以 .NET Framework 版本为目标,这就是引用 net5.0 程序集的文件存在问题的原因。据我了解我在 Mono.TextTemplating 中看到的内容,它们以启动它们的运行时为目标。为了解决您的问题,我建议尝试将 Mono.TextTemplating 作为命令行工具 - 它可能能够编译带有 net5.0 引用的文件。要将外部工具集成到 Rider 中,您可以转到 File > Settings > Tools > Custom Tools,禁用 Bundled T4 Template Executor 并为 Mono.TextTemplating CLT 添加自定义工具。

回答你的问题:是的,它可能被称为错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。