1

我正在向用 VB 编写的现有 ASP.NET 项目添加一个测试站点变体,我想让用户清楚他们在测试站点中具有不同的横幅和背景等。我创建了一个新测试配置和下编译 | 高级编译选项我添加了 TEST_MODE="1" 作为自定义常量。然后我尝试在 ASPX 文件中使用以下代码:

<%
#If TEST_MODE = "1" Then
    Response.WriteFile("header_test2.htm")
#Else
    Response.WriteFile("header.htm")
#End If
%>

IDE 将第一个语句显示为灰色,并进行重建和部署,它仍然包括 header.htm。我想知道是否有人对它为什么不起作用有想法,或者可以建议一种替代方法来根据活动配置包含不同的文件。

4

1 回答 1

2

这些条件编译常量保存到你的项目文件中,并没有部署到你的网站。

当网站运行时,ASP.NET 编译器不会找到该常量。

如果您希望它在部署的页面中工作,您需要使用 web.config 为网站设置编译器选项。

这是一篇很好的文章。希望它会帮助你。

http://haacked.com/archive/2007/09/16/conditional-compilation-constants-and-asp.net.aspx

于 2012-12-06T02:23:46.617 回答