这里有一个。我在一个项目/解决方案中有一堆T4s。这是一个带有支持代码和T4模板的框架。
在不同的解决方案中,我希望使用此框架,但支持类/ T4s保留在原始解决方案中。
在新的解决方案中,我链接到支持代码和T4s (添加现有/链接)。现在,在新的解决方案中,我有一个需要包含链接的T4的T4。它的内容是这样的:
<#@ template language="C#“debug="false”hostspecific="true"#> <#@ include file="..\Models\DALContextGenerator.tt"#> <#@ output extension=".cs"#><# Generate("..\Models\Model1.edmx");
>
在本例中,DALContextGenerator.tt位于此解决方案中,但链接到另一个解决方案中的实际DALContextGenerator.tt。当我运行T4时,我得到了一个错误("Failed to WHen text")。如果我引用物理位置,就可以了。
有什么想法吗?
谢谢
射线
发布于 2013-03-26 00:53:35
据我所知,T4引擎使用模板文件作为根,并且不知道Visual Studio解决方案和解决方案项。如果您正在使用指向其他位置文件的Visual Studio链接,则此信息仅存储在项目文件中。T4引擎查找相对于T4文件的包含路径。这就是引用Visual Studio链接相对失败的原因。但使用其绝对路径或指向物理文件的相对路径引用包含文件都会成功。
这里有一些如何解决你的问题的想法,但我想不出一个“顺利”的解决方案:
mklink /H source target)获得的信息生成具有正确路径的实际T4模板
发布于 2017-03-14 20:26:17
老的但相关的问题,我认为与其他帖子相同,在那里我使用扩展$(ProjectDir)和$(SolutionDir)发布了回复:https://stackoverflow.com/a/42785952/1948625
https://stackoverflow.com/questions/15616636
复制相似问题