我正在为用VB编写的现有ASP.NET项目添加一个测试站点变体,我想让用户明白他们在测试站点中使用不同的横幅和背景等。我创建了一个新的测试配置并在Compile下高级编译选项我已将TEST_MODE =“1”添加为自定义常量。然后我尝试在ASPX文件中使用以下代码:
<%
#If TEST_MODE = "1" Then
Response.WriteFile("header_test2.htm")
#Else
Response.WriteFile("header.htm")
#End If
%>
IDE显示灰色的第一个语句并进行重建并部署它仍然包括header.htm。我想知道是否有人有关于它为什么不起作用的想法,或者可以根据活动配置建议另一种方法来包含不同的文件。
答案 0 :(得分:2)
这些条件编译常量会保存到您的项目文件中,并且不会部署到您的网站。
当网站运行时,ASP.NET编译器将找不到该常量。
如果您希望在部署的页面中使用它,则需要使用web.config为网站设置编译器选项。
这是一篇很好的文章。希望它会对你有所帮助。
http://haacked.com/archive/2007/09/16/conditional-compilation-constants-and-asp.net.aspx