有沒有人有一個很好的示例或助手類,它允許我從位於Web應用程序引用的另一個程序集的T4模板中讀取Web應用程序中的連接字符串。我從它引用的數據庫中生成一些代碼,並且我會在如何獲取連接字符串的這個用法上得到一些幫助。 我讀過George Js的例子here但是它只在模板駐留在web應用程序中時才起作用,請大家幫忙!!!使用t4從另一個程序集讀取web.config
回答
var path = Host.ResolvePath(@"../Web.config");
var map = new ExeConfigurationFileMap { ExeConfigFilename = path };
var config = ConfigurationManager.OpenMappedExeConfiguration(
map,ConfigurationUserLevel.None);
var appSettings = config.AppSettings;
var connectionStrings = config.ConnectionStrings.ConnectionStrings;
你可以嘗試做這樣的事情:
var config = ConfigurationManager.OpenExeConfiguration("../somePathTo/web.config")
// use the config to get values like: config.AppSettings
hey rob,t4模板在自定義工具下運行,因此相對路徑不工作,因爲它在工具而非項目的上下文中工作。 – 2010-02-01 17:49:54
如果你打電話給大會,你可以做某事。像這樣: 新Uri(Assembly.GetCallingAssembly()。CodeBase).AbsolutePath 這隻會工作,如果您自定義工具使用API調用來優化T4。 可能是您的自定義工具可以提供某種類型的路徑參數,或者可以將路徑信息寫入某種共享數據存儲。 (excecuting目錄的XML文件)? 這將是很好的獲得更多的信息。 – Robert 2010-02-01 22:22:10
這是上面調用<#= System.Reflection.Assembly.GetCallingAssembly()的結果。CodeBase#> file:/// C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualStudio。 TextTemplating.10.0/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.TextTemplating.10.0.dll – 2010-02-02 17:32:27
位在T4左右IVE搜索找到我的答案後,人們可以使用
path = Host.ResolvePath(relativeFileName)
- 1. 如何從另一個程序集讀取app.config?
- 2. 如何從另一個程序讀取另一個窗口
- 3. 如何從.tt文件(T4模板)從web.config中讀取appSetting
- 4. 從web.config使用assemblybinding/bindingRedirect的C#T4
- 5. 在另一個程序集中讀取.config文件
- 6. 從另一個應用程序中讀取NotifyIcon文本
- 7. 從另一個應用程序的框架中讀取文本
- 8. 從另一個應用程序讀取數據
- 9. 如何從web.config引用程序集?
- 10. Android:從另一個應用程序讀取應用程序的設置
- 11. Web應用程序不斷從另一個應用程序讀取數據
- 12. 從另一個程序集運行WPF應用程序
- 13. 我的Web.config部分'程序集'的編譯無法讀取
- 14. 應用程序啓動後,如何從web.config讀取值?
- 15. 無法從Web.Config讀取應用程序設置
- 16. 嘗試從Windows應用程序讀取web.config的問題
- 17. 從另一個程序讀取標準輸出
- 18. MASM32程序集 - 從控制檯讀取一個數字
- 19. 獲取文件從一個程序集
- 20. 在另一個項目中使用web.config?
- 21. 從web.config讀取數據
- 22. 使用iTunes應用程序,從另一個應用程序
- 23. 使用python從另一個文件中讀取單個數字
- 24. 強制一個Linux程序從另一個位置讀取的libc庫文件
- 25. 使用ResourceManager從附屬程序集中讀取值
- 26. NetLogo:從另一個減去一個修補程序集
- 27. 未從web.config讀取成員資格提供程序屬性
- 28. Web.config中的程序集
- 29. 如何使用T4將類從一個項目轉換爲另一個項目?
- 30. 如何在T4模板中使用自定義方法駐留在另一個程序集
所以讓我看看,如果我瞭解情況..你有一個網絡應用程序。你有一個你可以修改但是被編譯到單獨的引用程序集的模板。當您運行轉換時,您希望能夠讀取引用Web應用程序的web.config?需要第二個細節:你如何運行模板?交互式地從VS或以編程方式@運行時?如果你能澄清這些問題,我相信一個簡單的解決方案是有的。 – 2010-02-06 06:51:09
你現在就在。該模板位於實際Web應用程序之外的引用程序集中,首先回答您的問題,以便能夠在設計時以交互方式在vs ..中運行它。我們正在研究一個集成的構建,我們有svn運行,並且模板連接字符串的不斷修改正在驅動我們dil(db在app_data文件夾中)。即時通訊尋找一種方法來引用數據庫在app_data文件夾中使用相對路徑(或絕對)來獲取文件本身。 – 2010-02-06 09:34:23