阅读T4文件的内容缺少什么

  • 本文关键字:T4 文件 阅读 c# t4
  • 更新时间 :
  • 英文 :


我迫切需要用C#中的T4生成HTML输出。

我正在使用RuntimeT4-Files并选择作为选项";TextTemplateingFilePreprocessor";而不是";TextTemplateingFileGenerator";。

我的"MyTemplate.tt"-文件包含:

<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
foo

我的"Program.cs"-文件包含:

using System;
namespace T4MS
{
class Program
{
static void Main(string[] args)
{
string output = new MyTemplate().TransformText();
Console.WriteLine(output);
}
}
}

发生以下错误时我错过了什么:

Schweregrad代码Beschreibung项目日期UnterdrückungszustandFehler CS1069 Der Typname";编译器错误集合"konnte nicht im Namespace";System.CodeDom.Compiler";gefunden werden。Dieser Typ wurde an Assembly";System.CodeDom,版本=4.0.3.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51"weitergeleitet。这是一个在中国组装的解决方案。T4MS C:\Users\figaro\source\repos\T4MS\T4MS\MyTemplate.cs 47 Aktiv

基本上这个错误告诉我添加一个程序集引用";System.CodeDom";,由我的自动生成的";MyTemplate.cs"-文件

所以我尝试添加";缺少";在我的tt文件中使用<#@ template language="C#" #> <#@ import namespace="System.CodeDom" #><#@ assembly name="System.CodeDom" #>的程序集。

您需要安装System.CodeDomNuGet包:https://www.nuget.org/packages/System.CodeDom/

这第一行对我有用。我不记得在哪里读过,但在我的情况下,是langversion造成了问题-没有比7.3更高的版本有效,但那是一两年前的

<#@ template debug="false" hostspecific="true" language="C#" compilerOptions="/langversion:7.3" #>

最新更新