免责声明:我对我在这里使用的每一项技术都是新手,所以如果我遗漏了明显的东西,请原谅我......
我开始将 MVC 4 与 Entity Framework 5 和 Web API 搞混了,我想用 TypeScript 和 Knockout 来做一些 UI 工作。我找到了 TypeLite 项目,它将采用我的 EF 模型并为我生成 TypeScript 接口,以便所有内容都是“强”类型的。
我的解决方案包括 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 上“运行自定义工具”时,出现错误:
编译转换:找不到类型或命名空间名称“MyApp”(您是否缺少 using 指令或程序集引用?)
我尝试添加以下行:
<#@ import namespace="MyApp" #>
<#@ import namespace="MyApp.Domain" #>
<#@ import namespace="MyApp.Domain.Models" #>
不过,它仍然不断给我同样的错误。我确定我遗漏了一些微不足道的东西,我仍然在谷歌博士为我找到的数千篇文章中挑选参考搜索,但我希望这里有人可以帮助我找到光明。
谢谢你的帮助...