Access911.net   |   a9BBS   |   OTaA System  
  搜索文章︰  
Access911歡迎您光臨  
   主頁      上傳      简体版       論壇     
設為首頁  |  加入收藏   
  
你現在的位置︰文章索引 -> 文章分類 ->  
 首頁|  近日更新|  下載  |  文章索引  |  搜索|  朮語|  承接工程|  
 
系統正在加載內容,請耐心等待...
 
 查詢
 窗体
 報表
 
 
 VBA
 函數
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 發布
 OA
 ASP/ASP.NET
 其他語言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用軟件
 參考文檔
 業主作品
 网友大作
 
 
友情鏈接
 access911.net
 
訪問人次
 1701842
 
站長 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 訂閱

顯示附加信息 >>>

關于VS2010 T4 TT 模板的摘錄

作者︰cg1  摘自︰access911.net  ︰cg1  更新日期︰2012-10-26  瀏覽人次︰

 

T4 模板中無法直接調用當前庫中的其他類,因為.tt文件打開debug="true"後查看自動轉成的.cs文件時發現其 namespace 不是當前項目我自己定義的namespece,而是微軟。

提示我名稱空間未找到。我已經在一開始用 import namespace="當前項目的名稱空間" 了,但是我開了調試以後發現 T4 的名稱空間是動態生成的


TT模板是這樣寫的︰
<#@ template debug="true" hostspecific="false" language="C#" #>
<#@ import namespace="WindowsFormsApplication1" #>
<#@ output extension=".txt" #>

調試的時候發現動態生成的 .cs 文件是

namespace Microsoft.VisualStudio.TextTemplating1E5AFE334F2E0CED93E2A9B59C11B417
{
    using WindowsFormsApplication1;
    using System;


http://connect.microsoft.com/VisualStudio/feedback/details/532051/t4-template-cant-reference-local-project-assembly


類型:  錯誤  
代碼:  532051  
打開日期:  2010/2/8 14:01:09  
訪問限制:  公開  
       
When a T4 Template (.tt) is added to a project, it can not import/reference the local project/assembly.

If the T4 Template is added to another project in the same solution, and tries to reference another local project/assembly, this problem still exists.  

詳細信息 (展開) Product Language
EnglishVersion
Visual Studio 2010 Beta 2Operating System
Windows XP
Operating System Language

EnglishSteps to Reproduce
1. Create a new Class Library project
2. Create a Class1 class
3. Add a T4 Template to the project.
4. Reference the Class1 class in the T4 template file (in dynamic code within file, not static output) and the template will not be able to generate output.Actual Results
T4 Template does not generate code.Expected Results
T4 Template should generate code.      You can indicate your satisfaction with how Microsoft handled this issue by completing this quick 3 question survey. [Details] 
 

------------------------------------------------

由 Microsoft 在 2010/5/17 14:40 發送 
Supporting assemblies should work just fine, so long as you build them before running the templates.

However, placing template code in the same project as the template itself is not supported, as you'd need to build the proejct containing the template output before running the templates, before building the project (and so on in an infinite loop) 


------------------------------------------------
由 bluevoodoo1 在 2010/3/5 7:35 發送 
Are there any workarounds for this? Generating template files without use of supporting assemblies makes T4 templates seemingly difficult to work with when dealing with dynamic, or content from databases (think entity/OR mapping). Using reflection to access types in an assembly is less than optimal. 


------------------------------------------------
由 Microsoft 在 2010/2/9 9:39 發送 
Thank you for your feedback concerning not being able to reference local project types in code blocks of T4 templates. Unfortunately this is a design limitation; one cannot use the types defined in the project owning the template at design (transform) time because this would require that the assembly be built before its content is completely defined. In other words code blocks in a text template cannot reference types defined in the same project.


 

 
相關文章
     沒有手動相關文章
 
評論
     查看或發表更多的評論,請單擊這里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期︰2000年4月2日  |  設計施工︰陳格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陳格 保留所有權利