2013-07-12 17 views
0

我在VS 2012 IN C#中有一個插件解決方案。我必須點擊這個插件才能執行T4模板。這些T4 TEMPLATE正在使用一些變量,這些變量在解決方案中的app.config文件中的鍵值對中定義爲鍵。從app.config獲取插件點擊VS 2012中的值C#

問題是如何通過點擊插件從App.config讀取值,然後如何在T4模板中使用這些值。

有人請幫我提供一個簡單的示例代碼,用於訪問app.config上的插件點擊和訪問T4模板中檢索值的代碼的值。

回答

0

我不知道任何內置的API,允許您在設計時在Visual Studio中訪問配置文件,以便在T4模板中使用它們。你將不得不打開和讀取.config文件自己:

  1. 獲取通過Visual Studio的自動化接口的引用到您的項目(EnvDTE)
  2. 查找項目項是所需的config文件
  3. 解析config文件與您選擇

您也可以跳過步驟1 + 2並解析其路徑的config文件的XML API,但不會很重用。

如果您不想深入瞭解該自動化模型和內容,請查看tangible's free T4 editor。它帶有一個T4模板庫。有一個T4文件已經準備好包含在你的文件中,它提供瞭解決方案中任何.config文件中的appSettings和connectionStrings。尋找「有形的Visual Studio配置助手」。使用此代碼可能如下所示:

<# 
    var hostServiceProvider = this.Host as IServiceProvider; 
    var dte = hostServiceProvider.GetService(typeof(EnvDTE.DTE)) as EnvDTE.DTE; 
    var project = dte.Solution.Projects.Cast<EnvDTE.Project>().First(); 
    var configHelper = ConfigurationHelper.GetDefaultConfiguration(project); 

    foreach(var appsetting in configHelper.AppSettings) 
    { 
#><#= appsetting.Key #> = <#= appsetting.Value #> 
    <#} 
#>