Tuyên bố từ chối trách nhiệm: Tôi mới chỉ về mọi công nghệ tôi đang sử dụng ở đây, vì vậy hãy tha thứ cho tôi nếu tôi thiếu thông tin hiển thị ..Biên dịch chuyển đổi: Không thể tìm thấy loại tên hoặc không gian tên khi chạy TypeLite.tt
Tôi bắt đầu gây rối với MVC 4 với Entity Framework 5 và Web API, và tôi muốn sử dụng TypeScript với Knockout để thực hiện một số công cụ giao diện người dùng. Tôi tìm thấy dự án TypeLite sẽ lấy mẫu EF của tôi và tạo ra các giao diện TypeScript cho tôi để mọi thứ được gõ "mạnh".
giải pháp của tôi bao gồm 3 dự án:
- MyApp.dll = Chứa tất cả các MVC làm việc
- MyApp.Domain.dll = Chứa các mô hình miền EF
- MyApp.WebAPI.dll = chứa các công việc WebAPI
tôi đã thêm các tài liệu tham khảo TypeLite cho dự án MyApp (thông qua NuGet), và sửa đổi các TypeLite.tt đọc:
<#@ 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>() #>
Khi tôi "Run Tuỳ chỉnh Tool" trên TypeLite.tt tôi nhận được lỗi:
Compiling transformation: The type or namespace name 'MyApp' could not be found (are you missing a using directive or an assembly reference?)
Tôi đã thử thêm dòng (s):
<#@ import namespace="MyApp" #>
<#@ import namespace="MyApp.Domain" #>
<#@ import namespace="MyApp.Domain.Models" #>
Nó vẫn giữ cho tôi cùng một lỗi mặc dù. Tôi chắc chắn rằng tôi đang thiếu thứ gì đó tầm thường, và tôi vẫn đang chọn hàng ngàn bài báo mà Tiến sĩ Google tìm cho tôi để tìm kiếm điều này, nhưng tôi hy vọng rằng ai đó ở đây có thể giúp tôi tìm ra ánh sáng.
Nhờ sự giúp đỡ ...
Cảm ơn bạn Lukas! Mã sửa đổi để giải quyết của tôi vấn đề: <# @ tên lắp ráp = "$ (SolutionDir) MyApp.Domain \ bin \ $ (ConfigurationName) \ MyApp.Domain.dll" #> – ThinkingCap
Thêm vào T4 làm việc cho tôi <# @ assembly name = "$ (TargetPath) "#> –