使用来自web.config

时间:2017-08-11 06:40:39

标签: c# .net-assembly t4

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

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

但是我的T4模板现在带来了

The File or Assembly "\xxx...\...." or a dependency could not be found

似乎我的T4模板没有在web.config中读取我的assemblyBinding部分是可能的,并且有一个解决方法,以便在每个相关的dll中更新我的程序集引用。

我正在使用带编译的Dll的T4模板进行代码实现,而在我的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 = d72343e09836ed19 \“odereineAbhängigkeitdavonwurde nicht gefunden.Das System kann die angegebene Datei nicht finden。” :“Internal.Xyz.DomainModel,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = d72343e09836ed19”}

1 个答案:

答案 0 :(得分:1)

问题是,T4模板没有在项目中使用web.config,T4模板在visual studio的上下文中运行,并使用visual Studio中的配置。

解决问题的方法是从visual studio编辑配置并在那里添加dependentAssembly绑定

for 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

你需要重新启动视觉工作室