问题标签 [clarius-visual-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 回答
1039 浏览

visual-studio-2010 - 是否有适用于 Visual Studio 2010 CTP2 的 T4 编辑器?

我正在寻找 VS 2010 CTP2 的 T4 编辑器。Clarius 在他们的博客上说他们正在等待 Beta1。

任何想法其他想法在哪里看?

谢谢

蒂姆

0 投票
2 回答
2215 浏览

visual-studio - T4 pro editors (payable) 比较

我有兴趣购买全功能 T4 编辑器。我在看:

  • 有形 T4 编辑器专业版
  • Clarius Visual T4 编辑器专业版

它们都有相同的价格标签(100 美元)。

Clarius 的产品似乎功能更丰富,但真的如此吗?如果是,那么它是否会像通常使用丰富的 Visual Studio 插件那样占用更多内存……Vis​​ual Studio 支持呢?

该领域的其他参与者

自 2011 年夏季以来,还有Devart 的 T4 编辑器可用,它是免费的,并且支持语法高亮以及智能感知。

0 投票
4 回答
10736 浏览

debugging - 在 T4 模板中设置断点

我正在尝试在 Visual Studio 2008 中调试 T4 模板的执行。

我在 Visual Studio 2008 中调试 T4 模板时发现的所有信息都表明您可以在模板中设置断点(红点),就好像它是常规代码文件一样。我安装了 Clarius T4 代码荧光笔,所以我的 T4 模板是彩色的,但我不能设置断点。 当我单击边距时,没有任何反应。

我尝试了 Debugger.Break(),它启动了一个新的 VS.NET 实例,但它无法从我的模板中加载代码。我得到一个对话框,上面写着“当前位置没有可用的源代码”。如果我在另一个实例中加载了相同的项目,或者我启动了一个新实例,就会发生这种情况。

是什么赋予了?

0 投票
2 回答
3363 浏览

visual-studio-2010 - 有哪些 T4 编辑工具?

我不经常使用 T4 模板;通常当我这样做时,它是在编辑其他项目的那些(特别是 SubSonic 和 T4MVC)。这种体验总是很不愉快(这当然是我不经常使用它们的原因)。

这些是我所知道的工具,它们都不太符合要求。

  1. 克拉里乌斯视觉 T4

    • 不支持 Visual Studio 2010。他们的博客提到正在进行的工作,但那是 2 个月前的事,此后没有更新。他们的支持论坛充满了垃圾邮件和关于何时支持 VS2010 的问题。
      我从事的大多数项目都在 Visual Studio 2010 中,我处理的模板要求它们自己在 Visual Studio 主机中运行(因为它们通过 VS 的自动化对象模型访问项目信息)。这就是为什么我正在寻找一个与 VS2010 兼容的编辑器。
  2. 有形的 T4 编辑器

    • 我第一次尝试使用它时,我以为 Visual Studio 2010 已经崩溃了。结果我没有等待足够长的时间(编辑器窗口出现了 2 多分钟)。叫我挑剔,但仅此一项就让我脱离了这个工具。

    • 我有一个修改后的 T4MVC 模板可以工作。安装 Tangible 的 T4 编辑器后,模板失败并出现多个错误。如果我随后卸载有形的 T4 编辑器,该模板将再次运行。因此,编辑器似乎改变了 Visual Studio 中 T4 的行为。也许很明显,这是完全不可接受的。

还有其他我错过的 T4 编辑器吗?有没有其他人使用这些工具,遇到同样的问题,并成功地使用它们?

我还应该说,对我来说最重要的功能只是区分作为模板一部分运行的代码和获得输出的代码/文本。其他的都是肉汁。

0 投票
1 回答
5441 浏览

c# - 为什么使用 ttinclude 而不是编译的程序集?

我一直在编写一个程序集来简化我的大部分 POCO 类型生成。我有一个核心程序集,其中包含多个 tt 文件并用于生成代码。

我这样做的原因是因为无论我尝试哪个扩展(Devart T4、Tangible-T4 或 Visual T4),都没有 Visual Studio 的 C# 编辑器提供的智能感知和支持那么好,所以用纯 C# 编写代码生成可以提高经验很多。

我面临的最大问题是实体框架助手类(例如Accessibility,等)是在 ttinclude 文件中定义的,而不是在程序集中定义的CodeGenerationToolsMetadataTools目前我不得不重写这些类提供的许多功能,以便它可以从程序集中使用。

我的问题是,为什么实体框架团队决定使用 ttinclude 文件而不是一些已编译的程序集?使用程序集方法似乎在更多情况下更有用,并且仍然不会影响 T4 代码生成(而不是使用<#@ include #><#@ assembly #>)。

我想知道解决这个问题的最佳方法是什么,我已经考虑EF.Utility.CS.ttinclude过运行TextTransform.exe然后获取生成的 C# 并编译它,这是否可取?

谢谢,卢克

更新

目前我所做的是添加EF.Utility.CS.ttinclude到我的项目中,将文件上的自定义工具设置为TextTemplatingFilePreprocessor. 这将生成包含类的代码。然后我复制了这个cs文件,删除了负责编写输出的类(它有方法TransformText())并编译成一个程序集。我现在可以在我的程序集中使用实体框架实用程序类。