我想從我的dbml(Linq to Sql)文件生成一些代碼,dbml文件被放置在我的項目的很多部分因此,我爲此寫了一個自定義工具單個文件的兩個自定義工具?
但問題是,dbml已經有包含MSLinqToSQLGenerator自定義工具,
所以,你知道的任何方式來設置兩個自定義工具一個文件,如果沒有,讓我知道你對此
我想從我的dbml(Linq to Sql)文件生成一些代碼,dbml文件被放置在我的項目的很多部分因此,我爲此寫了一個自定義工具單個文件的兩個自定義工具?
但問題是,dbml已經有包含MSLinqToSQLGenerator自定義工具,
所以,你知道的任何方式來設置兩個自定義工具一個文件,如果沒有,讓我知道你對此
Visual Studio的想法將僅支持每一個「自定義工具」文件,但是您可以添加預編譯步驟來針對任何您想要的操作運行其他工具。例如,我在我的一個項目的「Build Events」選項卡上設置了以下預編譯步驟。
"$(DevEnvDir)..\..\..\Common Files\Microsoft Shared\TextTemplating\10.0\TextTransform" "$(ProjectDir)DataContext\Northwind.proxy.tt"
爲了找到T4命令行工具,在這裏有很多相對路徑,但你明白了。這個特定的T4文件計入與它讀取以產生其輸出的.dbml文件相同的目錄中。
編譯項目之前,可以運行任何你想要的外部工具。只要確保在第一次運行後,將工具的輸出包含在項目中。之後,由於文件被改變爲PRE編譯步驟的一部分,因此每次構建時都會更新它。
如果在模板的職責中包含LINQ to SQL T4生成器,那麼您可以對T4進行適當的控制。
如果我理解正確,你想要保持.dbml生成器的默認行爲,但也要添加你自己的。
這似乎有點「古老」了,我還沒有親自使用過LINQ to SQL一段時間,但我確實使用了T4生成器的原始替換,生成了相當於標準.dbml生成器的代碼。
https://github.com/damieng/L2ST4
不知道這是最新的用VS 2010的版本,但你總是可以比較標準的.dbml生成的代碼和本T4輸出和進行適當的改變來實現相同的結果。
當然,您可以簡單地擁有多個不同的生成器,只需使用「Transform All Templates」運行它們,但根據您的問題,您需要將生成器附加到文件特定的自定義工具。
您也可以檢出(除非您已經熟悉)T4工具箱https://github.com/olegsych/T4Toolbox,它將「T4ScriptFileGenerator」自定義工具添加到文件中。它在文件更改時有效地運行T4代碼。