免责声明:我对这里使用的每一项技术都很陌生,所以请原谅我遗漏了显而易见的技术。
我开始用实体框架5和Web来处理MVC 4,我想使用TypeScript和Knockout来做一些UI内容。我找到了TypeLite项目,它将接受我的EF模型,并为我生成TypeScript接口,以便所有东西都是“强”类型的。
我的解决方案包括3个项目:
我将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‘(您是缺少一个使用指令还是程序集引用?)
我试着增加了以下几行:
<#@ import namespace="MyApp" #>
<#@ import namespace="MyApp.Domain" #>
<#@ import namespace="MyApp.Domain.Models" #>但它仍然给了我同样的错误。我确信我错过了一些琐碎的东西,我仍然在通过谷歌博士为我找到的数千篇文章来寻找这个搜索,但我希望这里的人能帮我找到光明。
谢谢你的帮助..。
发布于 2013-04-18 13:36:18
驱动T4接口生成的TypeScript模板引擎作为一个单独的进程运行,因此即使MyApp.WebAPI项目引用MyApp.Domain.dll,T4也不知道它。
应该将指向MyApp.Domain.dll的程序集指令添加到TypeLite.tt中。它类似于常规T4项目中的“”命令。
<#@ assembly name="$(SolutionDir)path\to\MyApp.Domain.dll" #>$(SolutionDir)是一个变量,它包含到解决方案目录的路径。
https://stackoverflow.com/questions/16083724
复制相似问题