2010-08-02 82 views
0

好了,所以我試圖一起破解一些東西,讓SubSonic3與單聲道的Postgres一起工作。單聲道拒絕解決在T4模板中的相對路徑包括

我幾乎有模板生成,但遇到了一個小問題。

<#@ include file="PostgreSQL.ttinclude" #> 

將給出「無法解析包含文件」錯誤。

但是,指定一個完整的路徑就可以了(雖然很麻煩)

<#@ include file="/home/earlz/Projects/SubSonicPostgres/SubSonicPostgres/SubSonic/PostgreSQL.ttinclude" #> 

有什麼樣的修復這個問題?它甚至是一個已知的錯誤?

+0

你說的是MonoDevelop T4引擎嗎? – 2010-08-02 18:17:37

+0

在進一步調查中,似乎MS僅在VS 2010中添加了此功能:http://blogs.msdn.com/b/garethj/archive/2010/04/15/what-s-new-in-t4-in- visual-studio-2010.aspx – 2010-09-01 22:26:21

+0

@mhu但這個在VS2008中工作 – Earlz 2010-09-03 00:18:43

回答

1

這是我第一次聽說這件事,我寫了MonoDevelop的T4引擎:)

有非同小可的解決方法,但由於全部源代碼MonoDevelop中是可用的,你可以很容易地修補它。據推測,問題在於,由於T4引擎在MD進程中運行,其工作目錄是MD的工作目錄。但是,主機可以輕鬆覆蓋LoadIncludeText或ResolvePath以模擬不同的工作目錄。

真的是不正確的地方舉報錯誤 - 你很幸運我看到你的文章。您應該詢問MonoDevelop郵件列表,並在appropriate place中提交錯誤。

+0

事情是,我不知道這是一個錯誤,它可能是一個配置問題或什麼。由於您編寫了引擎(* evil grin *)......現在,如果您想在包含文件中使用助手方法,則必須將所有包含指令放在文件的底部。如果他們在頂部,它會拋出一個奇怪的例外,那就是在塊或類似的東西之後不允許使用輔助方法......這是計劃稍後解決的嗎? – Earlz 2010-08-03 19:48:10

+0

我也不知道這是一個問題。我只在公開文檔中使用信息來構建它,因此可能與MS的T4引擎有一些小的不兼容。它旨在用於處理ASP.NET MVC模板 - 通用用途是一項獎勵。 TBH它不是一個高優先級的MD功能 - 如果您提交錯誤,我們可以跟蹤這些問題,並且我最終會解決它們,但修補程序會更有用:) – 2010-08-04 23:59:41