我在我的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”}
答案 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
你需要重新启动视觉工作室