标签: t4

没有Visual Studio的T4?

我正在尝试将一些代码生成模板连接到我的团队的自动构建过程.我们的SCM团队不希望在我们的构建机器上使用Visual Studio(我很难与之争论).

有没有办法在没有Visual Studio的情况下安装T4引擎?

.net t4

33
推荐指数
5
解决办法
1万
查看次数

找不到Microsoft.VisualStudio.TextTemplating程序集

我正在使用T4(文本模板转换工具包)进行一些工作,并且我试图达到可以创建自己的自定义文本模板主机的程度.但是,所有这些都依赖于Microsoft.VisualStudio.TextTemplating程序集,我在我的系统上找不到它!

我首先尝试在Visual Studio中添加对程序集的引用,但Microsoft.VisualStudio.TextTemplating的程序集未列在.NET选项卡下.

然后,我查看了%WINDIR%/ Assembly目录,找到了Microsoft.VisualStudio.TextTemplating的条目.但是,当我尝试浏览到此位置并在Visual Studio中添加程序集时,没有任何反应.

还有其他人有这个问题吗?根据MSDN tuts,听起来这个程序集应该包含在Visual Studio中(我安装了VS 2003,2005和2008).

.net t4 visual-studio

31
推荐指数
3
解决办法
2万
查看次数

无法在T4模板中引用装配

我在主程序集中的测试器类中有以下代码PocoGenerator.该程序集应该使用T4模板基于引用程序集(项目引用)中的L2S实体生成POCO DataObjects.

var assemblyName = "DataObjects";
var dataObjects = AppDomain.CurrentDomain.Load(new AssemblyName(assemblyName));
Run Code Online (Sandbox Code Playgroud)

尽我所能,我不能让T4找到DataObjects程序集.我尝试了各种形式的assembly指令,例如:

<#@ assembly name="DataObjects" #>
<#@ assembly name="DataObjects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" #>
Run Code Online (Sandbox Code Playgroud)

无济于事.上面的代码在测试器类中工作,但不在模板中.我究竟做错了什么?

补充:我已经通过在机器人位置使用绝对路径来解决这个问题,我引用它,指令以及类功能块,即

<#@ assembly name="C:\Development\PocoGenerator\DataObjects\bin\Debug\DataObjects.dll" #>
Run Code Online (Sandbox Code Playgroud)

var sourceAssembly = Assembly.LoadFile(@"C:\Development\PocoGenerator\DataObjects\bin\Debug\DataObjects.dll");
Run Code Online (Sandbox Code Playgroud)

但我真的不喜欢这个,因为我想在各个项目中使用这个模板,而我只是简单地讨厌重复,特别是魔术字符串.

t4 visual-studio-2010 visual-studio

31
推荐指数
2
解决办法
2万
查看次数

如何在T4模板中输出命名空间?

我有一个T4模板,用于在Visual Studio中使用TextTemplatingFileGenerator自定义工具设置的类:

<#@ template language="C#v3.5" hostspecific="True" debug="True" #>
<#
  var className = System.IO.Path.GetFileNameWithoutExtension(Host.TemplateFile);
  var namespaceName = "MyNamespace";
#>

namespace <#= namespaceName #>
{
    public static class <#= className #>
    {
        // some generated code
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在Visual Studio中获取"自定义工具命名空间"属性的值,因此我不必对命名空间进行硬编码?

我甚至会对C#项目的默认命名空间感到满意.

c# t4 code-generation visual-studio

30
推荐指数
4
解决办法
1万
查看次数

.NET Core中的T4替代品?

T4文本模板是文本块和控制逻辑的混合,可以生成文本文件.

任何人都可以建议我在.NET Core中使用T4替代品吗?微软是否有计划在.NET Core世界中引入T4?

c# t4 .net-core

30
推荐指数
1
解决办法
1万
查看次数

如何不输出默认的T4生成文件?

我使用T4toolbox生成一堆文件,假设我的t4文件名是x.t4,但是默认它会生成一个x.txt,里面什么都没有,我可以告诉t4引擎不要这样做吗?

t4

29
推荐指数
3
解决办法
5823
查看次数

如何解决此错误:加载包含文件"EF.Utility.CS.ttinclude"返回null或空字符串

我该如何解决这些错误:

  1. 加载包含文件'EF.Utility.CS.ttinclude'返回null或空字符串.
  2. 价值不在预期范围内.

使用的工具:VS 2012,Entity Framework 5.0.0,T4MVCExtensions 3.5.0,.NET Framework 4.5

我一直在大型MVC解决方案中的项目中使用EF和T4模板而没有发生任何事故.现在,当我右键单击edmx图时,EF会响应以下消息:值不在预期范围内.当我编译EF项目时,它会回复这些消息:

  1. 加载包含文件'EF.Utility.CS.ttinclude'返回null或空字符串.转换不会运行.C:\项目\ NSAForms\NSAForms\NSAFormsEDM\NSAFormsEntities.tt
  2. 无法解析文件的包含文本:C:\ Projects\NSAForms\NSAForms\NSAFormsEDM\EF.Utility.CS.ttinclude C:\ Projects\NSAForms\NSAForms\NSAFormsEDM\NSAFormsEntities.tt

数据库中的每个表都有一个主键.我很惊讶这个问题突然出现了.有没有人有一些建议如何解决这个问题?

提前致谢,

阿诺德

t4 .net-framework-version visual-studio entity-framework-5

27
推荐指数
3
解决办法
3万
查看次数

您使用T4的目的是什么?

T4已经在Visual Studio中存在了好几年,但没有得到很多关注.但是,对于那些了解它的人来说,似乎有一些非常有创意和有用的目的.

我正在研究使用T4的一些不同方式,我很高兴听到您如何将它用于现实生活场景.我主要对非标准和创造性用途感兴趣.

一些有趣的例子:

  1. Phil Haack使用T4 从.less创建静态CSS文件
  2. 使用T4模板生成WPF和Silverlight依赖项属性

注意:我意识到这是一个面向讨论的问题,但答案可能对其他人有所帮助.我已将其标记为主观且也标记为"社区维基",因此请允许该问题保持开放.谢谢!

t4 code-generation visual-studio

26
推荐指数
2
解决办法
2709
查看次数

用于CRUD的NHaml T4模板?

我想询问是否有人或已经看过NHAMl的T4模板与MVC 2.0的默认T4 CRUD(列表,创建等)模板相同?

c# asp.net-mvc t4 nhaml asp.net-mvc-2

26
推荐指数
1
解决办法
1534
查看次数

T4代:VsNamespaceSuggestion()从哪里拉?

有人知道,在.tt文件中,code.VsNamespaceSuggestion()从哪里获取其命名空间?

我遇到了一个问题,我必须更改解决方案的命名空间,我发誓我已经改变了它(文件夹名称,文件名,项目名称,项目属性,程序集信息等).但是当.tt文件运行时,它总是将旧命名空间放回其生成的类中.我被告知它来自EF模型,但我没有看到任何显示命名空间(在设计器/属性中或通过在NotePad中打开.edmx文件).

有什么想法吗?对于hack,我只是在下一行中使用我想要的命名空间覆盖它:

string namespaceName = code.VsNamespaceSuggestion();
namespaceName = "Desired.Namespace"; //HACK:
Run Code Online (Sandbox Code Playgroud)

c# t4 code-generation entity-framework

24
推荐指数
1
解决办法
3790
查看次数