我試圖調試一個預處理的T4模板,我無法進入通過運行預處理模板創建的類。我可以創建類的一個實例,但只要我嘗試着進入調試階段,就會彈出一個新窗口,說T4預處理模板調試不工作 - Visual Studio 2010 RTM
沒有可用的源代碼。沒有可用於當前位置的源代碼。
我的理解是,預處理模板可以調試,就像一個正常的C#類,這是不正確的?有什麼特別的,你需要做的,以便能夠進入預處理模板定義的類?
這是一個非常簡單的模板,並調用代碼,我有遇到問題:
TestPreprocessedTemplate.tt:
<#@ template language="C#" debug="true" #>
Hello <# Write("World"); #>
測試代碼:
var template = new TestPreprocessedTemplate();
string test = template.TransformText();
編輯 - 已添加根據下面的建議debug =「true」語句,仍然有同樣的問題。
更新 - 我也貼在MSDN論壇上這個問題,並收到了來自該指示的是什麼如上所述我的確應該工作MS員工響應。任何人都遇到過這個問題?
更新 - 在MSDN論壇的幫助下,看起來問題在於#line指令被添加到生成的c#類中。將它們評論出來,可以讓我像預期的那樣逐步完成代碼。 有沒有辦法阻止這些指令被添加到生成的類中?使用ASP.NET頁面,您可以添加LinePragmas =「false」參數,但對T4模板沒有任何影響。有任何想法嗎?
這聽起來像您使用的是有形的T4編輯器,它表現出了這個問題。如果你禁用了這個編輯器,你會發現調試一個預處理模板會把你帶到tt文件本身的正確位置。 如果你真的想調試生成的C#/ VB文件,那麼Paiden用於刪除下面介紹的#line指令的技術是一個不錯的方法。 – GarethJ 2011-09-21 23:48:47
查看相關問題http://stackoverflow.com/q/2945450/141172 – 2012-07-24 03:33:54