提问人:Naish O'Loughlin 提问时间:11/1/2023 最后编辑:Naish O'Loughlin 更新时间:11/1/2023 访问量:29
从 cli 运行 t4 预处理模板
Running t4 preprocessed template from cli
问:
当我右键单击我的 .tt 文件并从 Visual Studio 2022 中选择“运行自定义工具”时,.cs输出文件会完美生成,但是当我尝试从 Powershell CLI 运行 TextTransform.exe 或 TextTransformCore.exe 转换失败并出现以下错误:
错误 CS0103:编译转换:当前上下文中不存在名称“s_data”
但是,名称s_data在与模板匹配的分部类中声明,并且在使用 VS“运行自定义工具”选项运行时可以正常识别。
SideNavTemplate.tt 文件中的代码:
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<ul class="side_nav">
<# foreach (MenuItem sideItem in s_data) { #>
...
<# } #>
</ul>
分部类中的代码:
using System.Xml.Linq;
namespace Excelerator.Models;
partial class SideNavTemplate
{
private List<MenuItem> s_data;
public SideNavTemplate(List<MenuItem> data) { s_data = data; }
}
public class MenuItem
{
public string label { get; set; }
public string route { get; set; }
public List<MenuItem> subMenu { get; set; }
public List<MenuItem> sideData { get; set; }
public FormItem form { get; set; }
public string role { get; set; }
}
public class FormItem
{
public string name { get; set; }
}
尝试从两个文件所在的目录中调用 TextTransform.exe但没有喜悦,它不会识别 s_data 属性。
.tt 文件的自定义工具属性为TextTemplatingFilePreprocessor
任何帮助使其运行将不胜感激。
答: 暂无答案
评论