Files
MRCC/launcher/MRCC.Launcher/Program.cs
T

51 lines
1.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows;
using MRCC.Launcher;
internal static class Program
{
public static bool IsDevMode;
private static readonly object _logLock = new();
private static readonly string LogPath = "redcircuit.log";
[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool AllocConsole();
[STAThread]
public static void Main(string[] args)
{
IsDevMode = args.Any(a => string.Equals(a, "dev", StringComparison.OrdinalIgnoreCase));
if (IsDevMode)
{
AllocConsole();
Console.SetOut(new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = true });
Log("=== RedCircuit 开发模式 ===");
Log($"工作目录: {Environment.CurrentDirectory}");
Log($"EXE目录: {AppContext.BaseDirectory}");
Log("HTML5 世界直接运行于 WebView2 内,控制台用于查看日志。");
}
// 启动器 UIWebView2 加载 HTML5 世界
var app = new App();
app.Run(new MainWindow());
}
public static void Log(string message)
{
var line = $"[{DateTime.Now:HH:mm:ss.fff}] {message}";
lock (_logLock)
{
if (IsDevMode) Console.WriteLine(line);
Debug.WriteLine(line);
try { File.AppendAllText(LogPath, line + Environment.NewLine, Encoding.UTF8); } catch { }
}
}
}