You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Net Core环境下TypeLite未添加tt文件等内容的问题咨询

解决.NET Core项目中TypeLite未自动添加tt文件及Script文件夹的问题

确实,TypeLite在.NET Core SDK-style项目中的行为和传统.NET Framework项目不一样——这是因为两者的项目系统和NuGet包集成逻辑有差异,不是你安装配置时漏了步骤,而是**.NET Core项目需要手动完成这些操作**,原因和具体步骤如下:

为什么自动生成失效?

传统.NET Framework项目里,TypeLite的NuGet包会通过install.ps1脚本自动帮你创建.tt模板文件和Script文件夹,但.NET Core的SDK-style项目默认禁用了这类NuGet安装脚本的自动执行(出于安全性和项目系统一致性的考虑),所以这些内容不会自动生成。

手动配置的具体步骤

1. 确认安装正确的NuGet包

如果还没安装,优先安装TypeLite.Core(专门适配.NET Core的版本),或者确保你安装的TypeLite版本是支持.NET Core的(建议用最新稳定版)。

2. 手动添加Text Template(.tt)文件

  • 右键你的.NET Core项目 → 添加 → 新建项
  • 在搜索框输入"Text Template",选择对应的模板创建一个.tt文件(比如命名为ModelToTypescript.tt)
  • 打开这个.tt文件,替换成TypeLite的生成代码,示例如下:
<#@ template language="C#" #>
<#@ assembly name="$(TargetDir)TypeLite.dll" #>
<#@ assembly name="$(TargetDir)TypeLite.NetCore.dll" #>
<#@ import namespace="TypeLite" #>
<#@ import namespace="TypeLite.NetCore" #>
<#
    // 配置TypeLite生成规则,这里以驼峰命名、加载当前程序集为例
    var tsDefinitions = TypeScript.Definitions()
        .ForLoadedAssemblies()
        .WithFormatter((type, formatter) => formatter.WithCamelCase());
#>
<#= tsDefinitions.Generate() #>

3. 创建Script文件夹(可选但推荐)

右键项目 → 新建文件夹,命名为Scripts,后续可以把生成的TypeScript文件放到这里。如果想让tt文件直接输出到这个文件夹,可以修改tt代码里的生成逻辑,或者在tt文件的属性里设置输出路径。

4. 配置tt文件的自动生成属性

  • 右键你的.tt文件 → 属性
  • 将自定义工具设置为TextTemplatingFileGenerator,这样每次保存tt文件时,都会自动生成对应的.ts文件。

5. (可选)配置构建时自动生成

如果希望每次构建项目时都自动更新TypeScript定义,需要编辑你的.csproj文件,添加以下配置:

<PropertyGroup>
  <!-- 开启构建时的文本模板转换 -->
  <TransformOnBuild>true</TransformOnBuild>
  <!-- 可选:如果需要在构建前清理旧的生成文件 -->
  <TransformOutOfDateOnly>false</TransformOutOfDateOnly>
</PropertyGroup>

这样配置后,你就能在.NET Core项目里正常使用TypeLite生成TypeScript定义了。

内容的提问来源于stack exchange,提问作者Bronek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 14:37:35