0

我在 VS 2012 IN C# 中有一个插件解决方案。单击此插件时,我必须执行 T4 TEMPLATES。这些 T4 模板使用了一些变量,这些变量在解决方案的 app.config 文件中定义为键值对中的键。

问题是如何从App.config插件的点击中读取值,然后如何在 T4 模板中使用这些值。

请有人通过提供一个简单的示例代码来帮助我,该示例​​代码用于从app.config插件单击中访问值,以及用于访问 T4 模板中检索到的值的代码。

4

1 回答 1

0

我不知道有任何内置 API 允许您在设计时在 Visual Studio 中访问配置文件,以便在 T4 模板中使用它们。您必须自己打开并阅读 .config 文件:

  1. 通过 Visual Studio 自动化接口 (EnvDTE) 获取对项目的引用
  2. 找到作为所需 .config 文件的项目项
  3. 使用您选择的 Xml Api 解析 .config 文件

您也可以跳过步骤 1+2 并从其路径解析 .config 文件,但这不会是非常可重用的。

如果您不想深入研究自动化模型和其他东西,请查看有形的免费 T4 编辑器。它带有一个 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 #>
  <#}
#>
于 2013-07-12T13:58:56.123 回答