我有一个在VS2013和VS2015中工作多年的设计时T4模板。在Visual Studio 2017中损坏的T4组装指令
在VS2017中,该模板无法运行,并出现MissingMethodException。有问题的方法被安置在一个自定义组件中。该程序集使用绝对路径以及$(SolutionDir)宏引用。例如:
<#@ assembly name="$(SolutionDir)path\my.dll"#>
我一直在使用Fusion Log Viewer来调试这个问题。显然,找不到“my.dll”。根据日志,Visual Studio并没有在寻找绝对路径。
我认为这是T4VSHost中的一个错误。无论如何要解决这个问题或解决方法吗?
作为解决方法,我将my.dll放在$(DevEnvDir)的“我的”子目录中。就我个人而言,我认为这是一个不好的做法。但Fusion会以这种方式找到它。我宁愿将它放在更负责任的地方,并指示Fusion在哪里找到它。 –
可以硬编码文件路径吗? – qxg
@qxg,你在暗示宏(或宏扩展)有问题吗?显然,这不是问题。我硬编码的路径来测试理论 - 不行。 –