T4 Visual Studio 2010包括链接T4



这里有一个。我在一个项目/解决方案中有一堆t4。这是一个带有支持代码和T4模板的框架。

在不同的解决方案中,我想使用这个框架,但支持类/T4s保留在原始解决方案中。

在新的解决方案中,我链接到支持代码和T4s(添加现有/链接)。现在在新的解中,我有一个T4,它需要包含链接的T4。它是这样的:

<#@模板语言><#@输出扩展><标题>在

在本例中,DALContextGenerator。它在这个解决方案中,但是链接到真正的DALContextGenerator。在不同的溶液中。当我运行T4时,我得到一个错误("未能解决包含文本")。如果我引用物理位置,则可以。

任何想法?

感谢雷

据我所知,T4引擎使用模板文件作为根文件,并且不知道Visual Studio解决方案和解决方案项。如果您使用Visual Studio链接到其他地方的文件,则此信息仅存储在项目文件中。T4引擎查找相对于T4文件的包含路径。这就是为什么引用Visual Studio Link相对失败的原因。但是引用包含文件的绝对路径或指向物理文件的相对路径都成功。

这里有一些如何解决你的问题的想法,但我没有想到"顺利"的解决方案:

  • 在原始包含文件和位于模板文件旁边的文件(命令行:mklink /H source target)之间使用硬链接
  • 如果你使用的是一个源代码管理系统(如svn),你可以使用外部目录而不需要复制你的原始目录
  • 有一个(元)T4模板,根据从Env获得的信息生成具有适当路径的实际T4模板。DTE Visual Studio模型

旧但相关的问题,我认为与这另一个线程相同,在那里我发布了一个回复,使用扩展$(ProjectDir)和$(SolutionDir): https://stackoverflow.com/a/42785952/1948625

最新更新