Soy un principiante T4 que intenta usar T4 Toolbox para generar código F # basado en this answer, pero parece que los bloques de función de clase no se pueden mezclar con bloques de instrucción. Aquí está mi código:Caja de herramientas T4: mezcla de función de clase y bloques de instrucción
<#@ template language="C#" hostspecific="True" debug="True" #>
<#@ output extension="txt" #>
<#@ include file="T4Toolbox.tt" #>
<#
FSharpTemplate template = new FSharpTemplate();
template.Output.Project = @"..\Library1\Library1.fsproj";
template.Output.File = "Module2.fs";
template.Render();
#>
<#+
class FSharpTemplate: Template
{
public override string TransformText()
{
#>
module Module2
<# for (int i = 0; i < 10; i++) { #>
<#= i #>
<# } #>
<#+
return this.GenerationEnvironment.ToString();
}
}
#>
Y consigo este error:
A Statement cannot appear after the first class feature in the template. Only boilerplate, expressions and other class features are allowed after the first class feature block.
Así que ... ¿cómo puedo volver a escribir la plantilla para lograr esto?
Si hago que consigo ninguna salida en absoluto –
veo. Realmente no entiendo cómo la respuesta en la otra pregunta fue diseñada para funcionar, pero puedo decirte que esta es una regla para T4. Yo recomendaría agregar un enlace al archivo generado en el otro proyecto. – erikkallen