我迫切需要在 C# 中使用 T4 生成 HTML 输出。
\n我正在使用 Runtime-T4-Files 并选择“TextTemplatedFilePreprocessor”而不是“TextTemplatedFileGenerator”作为选项。
\n我的“MyTemplate.tt”文件包含:
\n<#@ template language="C#" #>\n<#@ assembly name="System.Core" #>\n<#@ import namespace="System.Linq" #>\n<#@ import namespace="System.Text" #>\n<#@ import namespace="System.Collections.Generic" #>\n\nfoo\nRun Code Online (Sandbox Code Playgroud)\n我的“Program.cs”文件包含:
\nusing System;\n\nnamespace T4MS\n{\n class Program\n {\n static void Main(string[] args)\n {\n string output = new MyTemplate().TransformText();\n Console.WriteLine(output);\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n我错过了什么,发生以下错误:
\nSchweregrad Code Beschreibung Projekt Datei Zeile Unterdr\xc3\xbcckungszustand\nFehler CS1069 Der Typename“CompilerErrorCollection”konnte nicht im Namespace“System.CodeDom.Compiler”gefunden werden。Dieser Typ 编写了一个程序集“System.CodeDom,Version=4.0.3.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51”。Sie sollten einen Verweis auf die Assembly hinzuf\xc3\xbcgen. T4MS C:\\Users\\figaro\\source\\repos\\T4MS\\T4MS\\MyTemplate.cs 47 Aktiv
\n基本上这个错误告诉我添加一个程序集引用“System.CodeDom”,由我自动生成的“MyTemplate.cs”文件抛出。
\n所以我尝试在我的 tt 文件中<#@ template language="C#" #> <#@ import namespace="System.CodeDom" #>添加“缺少”程序集。<#@ assembly name="System.CodeDom" #>
第一行对我有用。我不记得我在哪里读到它,但就我而言,正是它langversion导致了问题 - 没有高于 7.3 的版本可以工作,但那是一两年前的事了
<#@ template debug="false" hostspecific="true" language="C#" compilerOptions="/langversion:7.3" #>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1195 次 |
| 最近记录: |