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

これらの条件付きコンパイル定数は、プロジェクト ファイルに保存され、Web サイトにはデプロイされません。

Web サイトが実行されると、ASP.NET コンパイラはその定数を見つけられません。

展開されたページでこれを機能させるには、web.config を使用して Web サイトのコンパイラ オプションを設定する必要があります。

ここにこれに関する素晴らしい記事があります。それがあなたを助けることを願っています。

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

于 2012-12-06T02:23:46.617 に答える