У меня проблема во время сборки. Игровой движок Unity имеет зависимую от платформы компиляцию. #if UNITY_EDITOR ... #endif
.
Во время сборки допустима следующая строка, и все работает нормально.
string format = $@"/* Created by ... */
using ...;
using ...;
#if UNITY_EDITOR
using UnityEditor;
public partial class ...
{{{{
/// <summary>
///
/// </summary>
private static readonly Texture2D s_scriptIcon = (EditorGUIUtility.IconContent(""cs Script Icon"").image as Texture2D);{{0}}
}}}}
#endif
";
Но этот следующий экземпляр - нет. И это исключение - "error CS1025: Single-line comment or end-of-line expected"
. Это оставило меня с выводом, что, хотя #if
, #endif
в строке, они все еще рассматриваются компилятором как Preprocessor Directives
. Есть ли способ предотвратить такое поведение и убедиться, что они являются строками и заставить компилятор их игнорировать?
string format = $@"/* Created by ... */
using ...;
using ...;
#if UNITY_EDITOR
using UnityEditor;
public partial class ...
{{{{
/// <summary>
///
/// </summary>
private static readonly Texture2D s_scriptIcon = (EditorGUIUtility.IconContent(""cs Script Icon"").image as Texture2D);{{0}}
}}}}
#endif"; // Notice this line. This is where the error happens as well.