问题标签 [t4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8601 浏览

c# - 我可以从 C# 以编程方式使用 T4 吗?

我正在编写生成 C# 代码的软件。我主要使用StringTemplate和 StringBuilder。

有什么方法可以直接从我的代码中使用 T4 模板?

0 投票
2 回答
2350 浏览

c# - 当 XML 文件更改时,如何强制 Visual Studio 2008 从 T4 模板重新生成代码?

我从一个 XML 文件中生成了相当多的代码,但是这些模板被组织在两个不同的 T4 模板中。每当我更改 XML 文件时,我必须记住打开这两个*.tt文件,简单地更改它们(添加/删除空格)并再次保存它们以确保生成代码。

这不可能是正确的方法!

理想情况下,如果 XML 文件已更改,我希望 Visual Studio 2008 对 T4 文件进行文本转换。我有点迷茫,因为我真的不知道 Visual Studio 如何构建 C# 项目,所以指向那个方向的指针也会有所帮助(然后我可以自己尝试弄清楚)。

0 投票
22 回答
69459 浏览

visual-studio - 让 Visual Studio 在每次构建时运行 T4 模板

如何获得 T4 模板以在每次构建时生成其输出?就像现在一样,它只会在我对模板进行更改时重新生成它。

我发现了其他类似的问题:

Visual Studio 中的 T4 转换和构建顺序(未回答)

如何获取 t4 文件以在 Visual Studio 中构建?(答案不够详细[虽然仍然很复杂],甚至没有完全意义)

必须有一个更简单的方法来做到这一点!

0 投票
3 回答
991 浏览

asp.net-mvc - 用于 ASP.NET MVC 的 Spark T4 模板

我只是好奇是否已经存在任何与开箱即用的 Web 表单视图模板(创建、编辑、详细信息等)匹配/相似的 Spark T4 模板。我的谷歌技能没有让我得到任何结果。

0 投票
1 回答
1033 浏览

c# - TextTransform.exe 似乎只接受旧版本的 C#

当我在 Visual Studio 中展开 T4 模板时,我可以使用完整的 C# 3.0 语法,包括 LINQ 表达式等。当我在 Visual Studio 之外使用 TextTransform.exe 展开它时,它会抱怨 LINQ 表达式和 C# 3.0 的其他新功能。是否有更新版本的 TextTransform.exe?

我正在运行的是:

0 投票
2 回答
3019 浏览

.net - 使用 T4MVC 指定局部视图路径

我在我们的 ASP.NET MVC 项目中使用 T4MVC。

在我看来,我有这样的声明:

以前是这样的:

以前它工作正常,但在我使用 T4MVC 指定局部视图后,它无法找到该局部视图。

它只是试图在下面的路径中找到它,这是默认行为。

有没有办法通过 T4MVC 指定位于其他控制器的视图文件夹中的部分视图?或无论我在做什么,是否正确?我错过了什么?

谢谢。

0 投票
2 回答
1926 浏览

c# - 简单实用的 C# 代码生成(VS 2008 或 2010)

我已经推迟使用生成的代码作为构建过程的一部分,因为担心它会在构建过程中引入复杂性。

有没有一种简单的方法可以将构建时生成的代码集成到应用程序中?

我正在考虑的代码类型类似于Visual Studio 执行的资源和设置文件代码生成:

  • 这里有智能感知很有价值
  • 有很多属性和属性之间的联系很容易描述,但在 C# 中却无法简洁地实现。
  • 底层资源是可修改的,代码会自动重新生成,无需任何用户交互,也无需了解生成器的内部结构。

对于(非现实世界)示例,考虑一个预编译器,它通过类似命名的 C# 属性(或方法)生成对 Regex 的命名捕获组的访问器。这是我想要生成的典型的东西:样板包装的长片段,其主要功能是启用编译时检查错误(在上面;访问不存在的捕获组或编写和无效的正则表达式)并且没有不太重要的是,这些属性的智能感知。最后,团队中的其他人应该可以轻松使用此设置只有最低限度的学习曲线。即,要求人工干预来重新生成代码是绝对不可接受的,也不可接受将生成的代码提交到源代码控制中。在最坏的情况下,每个人都应该只需要安装一些扩展;理想情况下,扩展应该可以安装到源树中,这样任何签出树的人都可以在没有任何介绍的情况下构建项目。

要使其正常工作,IDE 集成必须非常出色:更新底层“资源”定义文件应该触发 代码的重新生成,而无需任何用户交互,理想情况下,生成器本身将易于稍后为其他开发人员维护(即一些生成器调试能力是一个加号)。

最后,可以将相同模板应用于各种输入资源的类似 XSLT 的方法是理想的;既因为这意味着如果您只想更新资源,您甚至不需要查看实际的生成器代码,并且因为它使模板重用变得微不足道。

我看过 T4,但据我所知,这有一种不太方便的类似 ASP 的方法,其中模板和资源没有被干净地分割(即,生成器负责查找资源 - 这使得模板重用变得不那么容易)。

是否有更好(更清洁)的解决方案或某种运行 T4 的方式,以便可以轻松地重用相同的模板并且(很像 .NET 设置文件)资源的任何更新都会自动触发已实现代码的重新生成?

摘要: 我正在寻找一种可以

  1. 当底层资源(不是模板!)发生变化时,无需开发人员干预即可自动重新生成代码。
  2. 维护起来有点简单
  3. 能够在多个资源之间共享相同的生成器模板(第 1 点可能意味着资源应该引用生成器,反之亦然)。
0 投票
2 回答
313 浏览

asp.net - 触发视图生成的 T4 控制器模板

我一直在使用一些定制的 MVC 模板,这些模板真正提高了我的工作效率。但是,我想把它提升到一个新的水平。

我为我的应用程序中的每个表生成一个控制器模板。控制器具有编辑、列表、详细信息和删除操作。我想做的是同时触发这些动作的视图的生成。

有没有人有参考或有关于如何做到这一点的建议?

0 投票
1 回答
276 浏览

.net - T4 RequiresProvidesDirectiveProcessor 类使用的需求/提供设计模式是什么?

Microsoft.VisualStudio.TextTemplating 命名空间中 RequiresProvidesDirectiveProcessor 类的 MSDN 库文档引用了一种称为“requires/provides”的设计模式。这是什么设计模式?

指令处理器的抽象基类,它定义和实现了一种称为要求/提供的设计模式。 ” -来自 MSDN 库

0 投票
2 回答
280 浏览

subsonic - 有没有办法在网站项目中使用 T4 模板?

可以在网站项目中使用 T4 模板吗?

或者更具体地说,可以在网站项目中使用 Subsonic 吗?

我可以在 Web 应用程序项目中运行 .tt 文件,但它在网站项目中没有任何作用。我猜他们需要一个解决方案/项目环境才能运行?