ASPX页面的慢速Chetah式转换

本文关键字:Chetah 转换 ASPX | 更新日期: 2023-09-27 18:22:00

是否有一种可接受的方法可以根据Visual Studio中选择的配置生成ASPX页面的HTML/ASP部分(而不是代码隐藏部分)?例如,我想在我的开发登录页上显示不同的标题图形(一个通知用户他们正在查看开发的标题),并为生产构建显示不同的图形。

我使用SlowChetah来转换我的配置文件,所以我的第一个想法是对ASPX页面使用类似的东西,但我还没有找到任何关于这类功能或特性的信息。

ASPX页面的慢速Chetah式转换

这可以使用T4文本模板与DTE对象相结合来实现,如从T4文本模板访问Visual Studio或其他主机底部所述,以获取当前构建配置并生成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控件,或者作为用户控件。