如何解决.Net Core T4运行的转换无法加载文件或程序集
我有一个.Net Core Asp.Net MVC应用程序,我试图创建一个T4文件,该文件使用反射来列出控制器的所有方法。但是,在引用Controller类时,它将引发错误。我尝试添加Mvc.Core NuGet软件包,但最新版本为2.2.5,并且由于某种原因,它期望使用v3.1.0.0。
Error Running transformation: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.AspNetCore.Mvc.Core,Version=3.1.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.AspNetCore.Mvc.Core,PublicKeyToken=adb9793829ddae60'
at Microsoft.VisualStudio.TextTemplating5EB735DC155C701BA88F9010B0EBAB3638F86E339180B5A3766CEE0DDDB7B870EC569C6473D06A892E38A012E5B34C56690737513ADB101F2235F88AEABE2E1D.GeneratedTextTransformation.TransformText()
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site,T0 arg0)
at CallSite.Target(Closure,CallSite,Object )
at Microsoft.VisualStudio.TextTemplating.TransformationRunner.PerformTransformation()
这是我的tt文件:
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ template language="C#v3.1" #>
<#@ assembly name="System.Core" #>
<#@ output extension=".cs" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Reflection" #>
class Foo {
<# Assembly asm = Assembly.GetAssembly(typeof(UserController)); #>
}
解决方法
您不能直接在 T4 模板中引用程序集类。
如果您想使用解决方案的程序集访问路径,您可以使用 Host 类
File.ReadAllText(this.Host.ResolvePath("Him.txt"));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。