是否有一种可接受的方法可以根据在 Visual Studio 中选择的配置生成 ASPX 页面的 HTML/ASP 部分(而不是隐藏的代码)?例如,我想在我的开发登录页面上显示不同的标题图形(一个通知用户他们正在查看开发的标题),并为生产构建显示不同的图形。
我使用 SlowChetah 来转换我的配置文件,所以我的第一个想法是对 ASPX 页面使用类似的东西,但我还没有找到关于那种功能或特性的任何信息。
最佳答案
这可以使用 T4 text templates 来实现结合 DTE 对象,如 Accessing Visual Studio or other Hosts from a T4 Text Template 底部所述, 以获取当前构建配置并生成所需的 ASPX 部分:
<#@ template hostspecific="true" #>
<#@ output extension=".aspx" #>
<#@ assembly name="EnvDTE" #>
<#@ import namespace="EnvDTE" #>
<#
// Get the environment object
IServiceProvider serviceProvider = (IServiceProvider)Host;
DTE dte = serviceProvider.GetService(typeof(DTE)) as DTE;
// Get the active build configuration object
var activeConfiguration = dte.Solution.SolutionBuild.ActiveConfiguration;
// Generate customized ASPX content
if (activeConfiguration.Name == "Debug")
{
#>
<h1>Debug</h1>
<#
}
else
{
#>
<h1>Release</h1>
<#
}
#>
然后模板的输出可以包含在实际的 ASPX 页面中,例如通过 Literal
控件,或作为用户控件。
关于c# - ASPX 页面的类似 SlowChetah 的转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9089295/