我在 VS 2012 IN C# 中有一个插件解决方案。单击此插件时,我必须执行 T4 TEMPLATES。这些 T4 模板使用了一些变量,这些变量在解决方案的 app.config 文件中定义为键值对中的键。
问题是如何从App.config
插件的点击中读取值,然后如何在 T4 模板中使用这些值。
请有人通过提供一个简单的示例代码来帮助我,该示例代码用于从app.config
插件单击中访问值,以及用于访问 T4 模板中检索到的值的代码。
我在 VS 2012 IN C# 中有一个插件解决方案。单击此插件时,我必须执行 T4 TEMPLATES。这些 T4 模板使用了一些变量,这些变量在解决方案的 app.config 文件中定义为键值对中的键。
问题是如何从App.config
插件的点击中读取值,然后如何在 T4 模板中使用这些值。
请有人通过提供一个简单的示例代码来帮助我,该示例代码用于从app.config
插件单击中访问值,以及用于访问 T4 模板中检索到的值的代码。
我不知道有任何内置 API 允许您在设计时在 Visual Studio 中访问配置文件,以便在 T4 模板中使用它们。您必须自己打开并阅读 .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 #>
<#}
#>