【问题标题】:What am I missing to read content of T4-File?阅读 T4 文件的内容我错过了什么?
【发布时间】:2021-08-17 10:56:12
【问题描述】:

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

我正在使用 Runtime-T4-Files 并选择“TextTemplatingFilePreprocessor”而不是“TextTemplatingFileGenerator”作为选项。

我的“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 Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Fehler CS1069 Der Typname "CompilerErrorCollection" konnte nicht im Namespace "System.CodeDom.Compiler" gefunden werden。 Dieser Typ wurde 一个程序集“System.CodeDom,版本=4.0.3.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51”weitergeleitet。 Sie sollten einen Verweis auf die Assembly hinzufügen。 T4MS C:\Users\figaro\source\repos\T4MS\T4MS\MyTemplate.cs 47 Aktiv

基本上这个错误告诉我添加一个程序集引用“System.CodeDom”,由我的自动生成的“MyTemplate.cs”-File 抛出。

所以我尝试在我的 tt 文件中添加带有 &lt;#@ template language="C#" #&gt; &lt;#@ import namespace="System.CodeDom" #&gt;&lt;#@ assembly name="System.CodeDom" #&gt; 的“缺少”程序集。

【问题讨论】:

    标签: c# t4


    【解决方案1】:

    第一行对我有用。我不记得我在哪里读到的,但在我的情况下是 langversion 导致了问题 - 没有高于 7.3 的工作,但那是一两年前的事了

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

    【讨论】:

    • 对不起,这对我没有用。我还尝试寻找其他编译器选项。
    • @FigaroHartmann 您正在运行什么版本的 Visual Studio、什么版本的 .Net、支持的 C# 版本以及您不使用 TextTemplatingFileGenerator 的原因是什么? (我的经验基于 TextTemplatingFileGenerator。)使用这些详细信息更新您的问题是个好主意。
    • 我的 Visual Studio 版本是 2019,我的 .NET 版本是 3.1。我是 C# 新手,所以我不知道如何查找我的版本,但我会在这里更新它们,一旦我找到它们。关于以下链接,我选择了运行时 T4 文本模板以创建 HTML 输出:docs.microsoft.com/en-us/visualstudio/modeling/…
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-08-16
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 2023-01-26
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      相关资源
      最近更新 更多