gpt4 book ai didi

javascript - 编译转换 : The type or namespace name could not be found when running TypeLite. tt

转载 作者:数据小太阳 更新时间:2023-10-29 04:29:06 26 4
gpt4 key购买 nike

免责声明:我对这里使用的几乎每一项技术都是新手,所以如果我遗漏了明显的内容,请原谅我......

我开始将 MVC 4 与 Entity Framework 5 和 Web API 混为一谈,我想使用 TypeScript 和 Knockout 来做一些 UI 的事情。我找到了 TypeLite 项目,它将采用我的 EF 模型并为我生成 TypeScript 接口(interface),以便所有内容都是“强”类型的。

我的解决方案包含 3 个项目:

  • MyApp.dll = 包含所有 MVC 工作
  • MyApp.Domain.dll = 包含 EF 域模型
  • MyApp.WebAPI.dll = 包含 WebAPI 工作

我将 TypeLite 引用添加到 MyApp 项目(通过 NuGet),并将 TypeLite.tt 修改为:

<#@ template debug="false" hostspecific="True" language="C#" #>
<#@ assembly name="$(SolutionDir)packages\TypeLite.0.8.2\lib\net40\TypeLite.dll" #>
<#@ assembly name="$(TargetDir)$(TargetFileName)" #>
<#@ import namespace="TypeLite" #>
<#@output extension=".d.ts"#>
<#= TypeScript.Definitions()
.For<MyApp.Domain.Models.Country>()
.For<MyApp.Domain.Models.State>()
.For<MyApp.Domain.Models.Address>()
.For<MyApp.Domain.Models.Contact>() #>

当我在 TypeLite.tt 上“运行自定义工具”时出现错误:

Compiling transformation: The type or namespace name 'MyApp' could not be found (are you missing a using directive or an assembly reference?)

我尝试添加行:

<#@ import namespace="MyApp" #>
<#@ import namespace="MyApp.Domain" #>
<#@ import namespace="MyApp.Domain.Models" #>

虽然它仍然不断给我同样的错误。我确信我遗漏了一些微不足道的东西,而且我仍在挑选谷歌博士为我找到的数千篇文章,这些文章引用了对此的搜索,但我希望这里有人可以帮助我找到线索。

感谢您的帮助...

最佳答案

驱动 TypeScript 接口(interface)生成的 T4 模板引擎作为单独的进程运行,因此即使 MyApp.WebAPI 项目引用 MyApp.Domain.dll,T4 也不知道它。

您应该将指向 MyApp.Domain.dll 的程序集指令添加到 TypeLite.tt。它是来自常规 C​​# 项目的“添加引用”命令的 T4 模拟。

<#@ assembly name="$(SolutionDir)path\to\MyApp.Domain.dll" #>

$(SolutionDir) 是一个变量,包含您的解决方案目录的路径。

关于javascript - 编译转换 : The type or namespace name could not be found when running TypeLite. tt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16083724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com