C#T4使用web.config中的assemblybinding/bindingRedirect

C#T4使用web.config中的assemblybinding/bindingRedirect,c#,.net-assembly,t4,C#,.net Assembly,T4,我已经在我的web项目中创建了我自己的T4 Tempalte,该项目正在从我当前的解决方案加载使用过的程序集并创建一些文件 到目前为止效果不错。但是现在我已经将我的一个NuGet组件更新为一个新版本,并添加了一个assemblyBinding部分,以便旧版本和新版本的组件都可以工作。到目前为止,这对我的网站本身也很好 但我的T4模板现在带来了 The File or Assembly "\xxx...\...." or a dependency could not be found 似乎我的T

我已经在我的web项目中创建了我自己的T4 Tempalte,该项目正在从我当前的解决方案加载使用过的程序集并创建一些文件

到目前为止效果不错。但是现在我已经将我的一个NuGet组件更新为一个新版本,并添加了一个assemblyBinding部分,以便旧版本和新版本的组件都可以工作。到目前为止,这对我的网站本身也很好

但我的T4模板现在带来了

The File or Assembly "\xxx...\...." or a dependency could not be found
似乎我的T4模板没有在web.config中读取我的assemblyBinding部分。这是可能的,并且是否有解决方法,不更新每个依赖dll中的我的程序集引用

我使用T4模板和编译后的Dll来实现代码,在我的Dll中加载我的程序集,这些都很好

  var assemblies = Factory.CreateAssemblyManager().LoadAssemblies(proxySettings.WebProjectName, proxySettings.FullPathToTheWebProject);
然后我在每个程序集中搜索我的自定义属性,这里我得到上面的错误,文件或程序集无法加载

  foreach (Assembly assembly in assemblies)
  {
      var types = assembly.GetTypes().Where(type  => type.GetMethods().Any(p => p.GetCustomAttributes(typeof (CreateProxyBaseAttribute), true).Any())).ToList();
   }
德国错误:


{“Die Datei oder Assembly\”Internal.Xyz.DomainModel,Version=2.1.0.0,Culture=neutral,PublicKeyToken=d72343e0983ed19\“order eine Abhängkeit davon wurde nicht gefunden.Das系统kann Die angegebene Datei nicht finden.”:“Internal.Xyz.DomainModel,Version=2.1.0.0,Culture=neutral,PublicKeyToken=neutral,PublicKeyToken=d72343e9836ed19”

问题是,如果T4模板未在项目中使用web.config,则T4模板将在visual studio的上下文中运行,并使用visual studio的配置

要解决此问题,请从visual studio编辑配置并在其中添加dependentAssembly绑定

对于VS 2015,请使用以下路径

c:\users\[user]\AppData\Local\Microsoft\VisualStudio\14.0\devenv.exe.config
在VS 2017中,您需要使用此路径

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE

您需要重新启动visual studio

能否显示导致依赖项错误的重要模板代码?T4模板是否用作某些ORM(EF或其他)的一部分?