jjzjj

c# - 每次切换到另一个选项卡时如何阻止 T4 执行?

当我编辑T4时,每次切换到另一个文件时都会执行脚本。快速简单的脚本还可以,但有些脚本需要很长时间才能执行。有没有办法禁用此行为?我希望脚本仅在我保存T4文件或从菜单中手动选择“运行自定义工具”时运行。 最佳答案 我遇到了完全相同的问题。我按照本文中的步骤操作http://msdn.microsoft.com/en-us/library/ee789839.aspx关于将模板拆分到另一个项目并共享输出文件。它详细说明了如何通过右键单击模板并清除CustomTool属性来关闭附加到模板的TextTemplatingFileGenerato

c# - 如何将字符串参数传递给 t4 模板

您好,我正在尝试找到一种将普通字符串作为参数传递给文本模板的方法。这是我的模板代码,如果有人能告诉我我需要用C#编写什么来传递我的参数并创建类文件。这将非常有帮助,谢谢。namespace{usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Xml;//////Thisclassdescribesthedatalayerrelatedto./////////>OriginalVersion///publicpartialclass:DataObject{#regionconstructor//

c# - 构建时 T4 转换的产品仅在下一次构建中使用

我有一个VS项目,其中包含:在template.tt上运行TextTransform的预构建操作以生成generated.csgenerated.cs列为要编译的文件之一(即在项目文件列表中)我在构建项目时,执行了预构建Action,重新创建了generated.cs,但是VS编译的是之前版本的generated.cs(我猜它是在构建过程开始时加载到内存中的)。如何使构建使用新版本的generated.cs(即在预构建操作中生成的)?如何强制构建顺序?请注意,文本转换输入是动态的,因此无法在设计时完成。 最佳答案 我认为您不需要自定

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

我正在编写生成C#代码的软件。我主要使用StringTemplate和StringBuilder。有什么方法可以直接从我的代码中使用T4模板吗? 最佳答案 OlegSych在此处描述如何执行此操作:UnderstandingT4:PreprocessedTextTemplates.请注意,您似乎需要VisualStudio2010来生成预处理的文本模板,但您可以在任何您喜欢的地方托管预处理的文本模板-包括在您的WinForms应用程序中。 关于c#-我可以从C#以编程方式使用T4吗?,我

c# - MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板

在VisualStudio2015中,我使用的是NuGet包Unofficial.Microsoft.VisualStudio.TextTemplating.14.0.0,它允许我在构建项目时直接从MSBuild转换T4模板。然而,在VisualStudio2017RTM中,这会破坏构建并显示以下消息:运行转换代码时抛出异常。该过程无法继续。抛出以下异常:System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.CodeAnalysis,Version=1.3.1.0,Culture=neutral,PublicKeyToken=31bf

c# - 使用 C# 运行 T4 模板

我有生成cs文件的T4模板(mycode.tt)。我通常右键单击tt文件并选择RunCustomTool,它在内部获取一个xml文件并为我生成代码。现在我想使用c#windows应用程序运行自定义工具。所以点击一个按钮我想运行自定义工具。是否可以从C#运行CustomTool。编辑:我有2个tt文件,其中一个没有代码隐藏cs文件。但是另一个附加了一个.cs文件,我正在从第一个.tt文件调用第二个文件的TransformText()方法。所以我需要调用第一个文件。所以我不能使用TransformText()方法。有没有办法动态调用textTemplate文件?

c# - 错误 "A template containing a class feature must end with a class feature"

我在VisualStudio2010下开发C#T4预处理模板时遇到以下编译错误:Atemplatecontainingaclassfeaturemustendwithaclassfeature 最佳答案 错误是由最后一个#>后的不可见空格引起的同样重要的是要记住,不可见的空格可能会导致其他难以理解的编译错误。如果您想查看更大的图片,请查看以下链接:AgoodexampleAgoodexplanaton,通过RyanPugh既然您已经意识到处理文本模板时不可见空间的危害有多大,我的建议是:让它们可见。如果您不知道如何操作,请参阅Jee

c# - t4 模板的缩进错误

我目前正在使用T4模板,我注意到有时代码缩进不正确,我该如何避免这种情况?例如我在模板中有这段代码}this.cmbDecisionList.Dat=dataSource;this.btnDec.Enabled=dataSource.Count>0;}在生成的类中它就像}this.cmbDecisionList.Dat=dataSource;this.btnDec.Enabled=dataSource.Count>0;} 最佳答案 请允许我用点替换空格来说明您的问题。}........this.cmbDecisionList.Dat

c# - T4代码生成: access types in current project

使用T4代码生成,是否可以访问当前项目中定义的类型?例如,如果我有一个接口(interface)并且我想将它的实现委托(delegate)给另一个类,即interfaceIDoSomething{publicvoiddo_something();}classDoSomethingImpl:IDoSomething{publicvoiddo_something(){//implementation...}}classSomeClass:IDoSomething{IDoSomethingm_doSomething=newDoSomethingImpl();//forwardcallstoi

c# - 强类型 T4MVC Action /ActionLink

我一直在使用T4MVC(仅供引用:v2.6.62)已经有一段时间了,我一直在慢慢地将我们的代码转移到这种工作方式(减少对magicstrings的依赖)。但我不得不停下来,因为出于某种原因,T4MVC无法将对象转换为url,并且似乎只能处理原始类型(int/string/等)。这是一个例子:路线分割:/MyController/MyAction/{Number}/{SomeText}类:namespaceMyNamespace{publicclassMyClass{publicintNumber{get;set;}publicstringSomeText{get;set;}}}Cont