Statiqのレイアウトで使用するRazor構文でDEBUG定数を使う話

公開: 2021年5月30日 日曜日
更新: 2021年12月31日 金曜日

このブログは Statiq で生成しているがメリットは.NET Core(現在は.NET 5を使用)で実行できること。つまりWindowsでもMacでも実行できることが売りにもなる。

少し前だが私のメイン環境を ASUSの15インチノート から MacBook Air (2020) に入れ替えた。 macOSそれもM1チップの開発環境となったが前述のStatiqは環境が変わっても使える。


本題のStatiqのレイアウトで使用するRazor構文でDEBUG定数(条件付きコンパイルシンボル)を使う点について、Windowsとの環境の違いかコードの途中に差し込む形での使用は正しく機能しないようだった。

以下、正しく機能した書き方を記しておく。

    public static class Consts
    {
#if DEBUG
        public const bool IS_DEBUG = true;
#else
        public const bool IS_DEBUG = false;
#endif
    }
@if (Consts.IS_DEBUG) {
<div>DEBUG</div>
}

参考

C# プリプロセッサ ディレクティブ | Microsoft Docs

c# - Preprocessor directives in Razor - Stack Overflow