因此,我有一个T4模板正在尝试在设计时运行,但是它一直给我以下错误。
Running transformation: System.IO.FileNotFoundException: Could not load
file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system
cannot find the file specified.
File name: 'System.Runtime, Version=4.2.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a'
我的Visual Studios解决方案中包含10个项目,所有这些项目都针对.Net Core 2.0框架。我的T4模板目前看起来像这样:
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Reflection" #>
<#@ import namespace="Services.Resources.DataTransferObjects.Infrastructures" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ assembly name="$(TargetDir)Services.dll" #>
<#@ output extension=".cs" #>
public class AdminDTO
{
<#var editableObjs = Assembly
.GetAssembly(typeof(GenericEditable<>))
.GetTypes()
.Where(p => p.BaseType != null && p.BaseType.IsGenericType && p.BaseType.GetGenericTypeDefinition() == (typeof(GenericEditable<>)))
.ToList();
#>
}
目前,我只需要模板中引用的程序集即可,该程序集是.Net Core 2.0类库项目。我尝试在此特定的库中添加System.Runtime.dll引用,但似乎没有任何区别。
我已经阅读了与此类似的其他几个问题,通常看来.Net Core似乎与T4模板有关,但是似乎大多数人的解决方案都针对.Net标准库。我不确定这是否适合我,因为我的整个解决方案仅涉及.Net Core项目。
编辑
我将所有项目都更改为.Net Standard 2.0而不是.Net Core,并且解决了最初的问题,但是现在我看到了此错误:
System.Reflection.ReflectionTypeLoadException: Unable to load one or
more of the requested types. Retrieve the LoaderExceptions property for
more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
答案 0 :(得分:3)
我发现了System.Runtime
dll错误的解决方法。
将此bindingRedirect放在C:\Users\<user>\AppData\Local\Microsoft\VisualStudio\15.0_29f8d23a\devenv.exe.config
-> <configuration>
-> <runtime>
内的<assemblyBinding>
里面,其他所有的都是bindingRedirect的
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
这是Visual Studio或T4模板引擎中的错误:https://developercommunity.visualstudio.com/content/problem/358905/filenotfoundexception-systemruntime-version4210-wh.html