【发布时间】:2017-03-15 02:47:14
【问题描述】:
我有一个在 VS2013 和 VS2015 中使用多年的设计时 T4 模板。
在 VS2017 中,模板无法运行并出现 MissingMethodException。有问题的方法位于自定义程序集中。使用绝对路径和 $(SolutionDir) 宏引用程序集。比如:
<#@ assembly name="$(SolutionDir)path\my.dll"#>
我一直在使用 Fusion Log Viewer 来调试此问题。显然,找不到“my.dll”。根据日志,Visual Studio 并没有在绝对路径中查找。
我认为这是 T4VSHost 中的一个错误。有没有办法解决这个问题或解决方法?
【问题讨论】:
-
作为一种解决方法,我将 my.dll 放在 $(DevEnvDir) 的“my”子目录中。就个人而言,我认为这是一种不好的做法。但是Fusion会以这种方式找到它。我宁愿把它放在更负责任的地方,并指示 Fusion 在哪里找到它。
-
硬编码文件路径可以工作吗?
-
@qxg,你是说宏(或宏扩展)有问题吗?显然,这不是问题。我硬编码了测试理论的路径 - 不行。
标签: t4 visual-studio-2017