【问题标题】:T4 Visual Studio 2010 include linked T4T4 Visual Studio 2010 包括链接的 T4
【发布时间】:2013-03-25 13:50:46
【问题描述】:

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

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

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

>

在这种情况下,DALContextGenerator.tt 在此解决方案中,但在不同的解决方案中链接到真正的 DALContextGenerator.tt。当我运行 T4 时,我收到一个错误(“无法解析包含文本”)。如果我引用物理位置就可以了。

有什么想法吗?

谢谢

【问题讨论】:

    标签: visual-studio-2010 linked-list include t4


    【解决方案1】:

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

    这里有一些想法可以解决您的问题,但没有我能想到的“顺利”解决方案:

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

    【讨论】:

    • 尼科,谢谢。我通过使用原始物理路径定义环境变量并让其他 T4 在 include 指令中使用它来解决它。
    【解决方案2】:

    老但相关的问题,我认为与其他线程相同,我在其中发布了回复,使用扩展 $(ProjectDir) 和 $(SolutionDir):https://stackoverflow.com/a/42785952/1948625

    【讨论】:

      猜你喜欢
      • 2011-03-22
      • 2011-02-02
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多